Cập nhật thông tin

BlogBlog

TRANG CHỦ Blog Giải thích mô hình AI Giới thiệu giá trị tỷ lệ cá cược tỷ số

Giới thiệu giá trị tỷ lệ cá cược tỷ số

blog/tải lên/Powered_Blog_3-1100x400png

Một trong những nỗi lo sợ về mô hình học máy (ML) là chúng là những hộp đen không thể giải thích được Một số phức tạp đến mức ngay cả những người không phải là chuyên gia cũng không thể hiểu tại sao lại đưa ra những quyết định như vậy Đây là mối quan tâm đặc biệt khi những mô hình như vậy được sử dụng để đưa ra các quyết định có tính rủi ro cao, chẳng hạn như có nên thả một người ra khỏi nhà tù hay có nên thực hiện một thủ thuật phẫu thuật đầy rủi ro cho bệnh nhân hay không

Lĩnh vực ML có thể giải thích hoặc diễn giải được (thường được viết dưới dạng XML) tập trung vào việc tạo ra các công cụ và phương pháp để mô tả cách các mô hình ML đưa ra quyết định Một trong những phương pháp cơ bản trong lĩnh vực này là giá trị tỷ lệ cá cược tỷ số và trong bài viết này tôi sẽ giới thiệu ngắn gọn về giá trị tỷ lệ cá cược tỷ số là gì và cách sử dụng nó

Ví dụ về giá trị tỷ lệ cá cược tỷ số

Ví dụ: giả sử chúng tôi là một nhóm nông dân và kiếm được lợi nhuận 1 triệu USD trong năm nay Số tiền này nên được phân phối như thế nào?

Nó có thể được chia đều cho mỗi thành viên Nhưng điều gì sẽ xảy ra nếu một thành viên đóng góp tới 80% doanh thu? Điều gì sẽ xảy ra nếu một thành viên còn tiền trong tài khoản ngân hàng và được thông báo rằng nếu họ không nhận được phần chia công bằng, họ sẽ quyên góp tất cả cho tổ chức từ thiện? Điều gì sẽ xảy ra nếu một thành viên cung cấp một chiếc máy giúp tăng năng suất của mọi người, mặc dù nó không làm tăng doanh số bán hàng và kết quả là doanh số bán hàng tăng 20%?

Đóng góp của mỗi thành viên là khác nhau và việc xác định số tiền mà mỗi thành viên sẽ nhận được không hề đơn giản “Giá trị tỷ lệ cá cược tỷ số” là một phương pháp được Lloyd tỷ lệ cá cược tỷ số đề xuất vào năm 1951 nhằm giải quyết vấn đề này và phân chia cổ phần một cách công bằng cho mỗi thành viên

tỷ lệ cá cược tỷ số đang nghiên cứu lý thuyết trò chơi hợp tác khi tạo ra công cụ này Tuy nhiên, thật dễ dàng để chuyển điều này sang lĩnh vực máy học Chỉ coi các dự đoán của mô hình là "lợi nhuận" và mỗi đặc điểm là "nông dân trong dân số" Giá trị tỷ lệ cá cược tỷ số cho chúng ta biết mức độ ảnh hưởng của từng yếu tố đến dự đoán và (chính xác hơn) mỗi đặc điểm sẽ di chuyển dự đoán đến mức nào so với dự đoán trung bình

Tính giá trị tỷ lệ cá cược tỷ số

Sau đây là quy trình tính giá trị tỷ lệ cá cược tỷ số cho một đối tượng F

  1. Tạo một tập hợp tất cả các tổ hợp tính năng có thể có (được gọi là liên minh)
  2. Tính giá trị dự đoán trung bình của mô hình
  3. Đối với mỗi liên minh, hãy tính chênh lệch giữa giá trị dự đoán của mô hình không có F và giá trị dự đoán trung bình
  4. Đối với mỗi liên minh, hãy tính toán sự khác biệt giữa dự đoán mô hình bằng cách sử dụng F và dự đoán trung bình
  5. Đối với mỗi liên minh, hãy tính xem F thay đổi giá trị dự đoán của mô hình so với giá trị trung bình bao nhiêu (tức là bước 4 - bước 3) - đây là đóng góp cận biên của F
  6. Giá trị tỷ lệ cá cược tỷ số = giá trị trung bình của tất cả các giá trị được tính ở bước 5 (tức là giá trị trung bình đóng góp biên của F)

Nói cách khác, giá trị tỷ lệ cá cược tỷ số của đặc điểm F là đóng góp cận biên mà F tạo ra cho mô hình, tính trung bình trên tất cả các kết hợp có thể có

Để đơn giản, tôi sẽ tránh các định nghĩa toán học nghiêm ngặt, nhưng nếu muốn, bạn có thể truy cập Wikipedia hoặc cuốn sách miễn phí Học máy có thể diễn giải của Christoph Molnar Bạn có thể nghĩ rằng việc tính toán rất khó khăn và bạn đã đúng Nếu có K đặc trưng thì sẽ có 2**K liên kết và việc tính giá trị tỷ lệ cá cược tỷ số sẽ tăng theo cấp số nhân Vì lý do này, việc tính toán các giá trị tỷ lệ cá cược tỷ số là vô cùng khó khăn Tài sản này đã gây khó khăn cho việc khai thác trong nhiều thập kỷ Tuy nhiên, gần đây tôi đã có một khám phá lớn

Giá trị tỷ lệ cá cược tỷ số trong Python

Năm 2017, Lundberg và Lee đã xuất bản một bài báo có tựa đề "Phương pháp tiếp cận thống nhất để diễn giải các dự đoán mô hình" Họ đã kết hợp các giá trị tỷ lệ cá cược tỷ số với một số kỹ thuật giải thích mô hình khác để tạo ra các giá trị SHAP (tỷ lệ cá cược tỷ số Additive exPlanations) và thư viện SHAP tương ứng

Nếu bạn muốn tạo các giá trị tỷ lệ cá cược tỷ số cho mô hình của mình, thì thực tế bạn sẽ tạo các giá trị SHAP Trên thực tế, trong nghiên cứu của mình, chúng tôi không tìm thấy bất kỳ thư viện nào triển khai các giá trị tỷ lệ cá cược tỷ số Điều này thật tuyệt vời vì nó cho thấy SHAP đã tận dụng được mọi ưu điểm của giá trị tỷ lệ cá cược tỷ số và cải thiện nhiều mặt tiêu cực Tôi sẽ lưu bản phân tích chi tiết về thư viện SHAP cho bài viết sau, nhưng tôi muốn chia sẻ một số kỹ thuật trực quan hữu ích để thu hút sự quan tâm của bạn

Chúng tôi sẽ sử dụng một tập hợp con bộ dữ liệu Xếp hạng & Giá rượu của Kaggle Tập dữ liệu này có 5 tệp csv, nhưng lần này chúng tôi sẽ chỉ xử lý Redcsv, có khoảng 8500 hàng Tập dữ liệu này bao gồm dữ liệu được lấy từ Vivinocom, thị trường rượu vang lớn nhất thế giới Mỗi loại rượu trên trang này đều có xếp hạng để giúp bạn đưa ra quyết định mua hàng Chúng tôi sử dụng các cột tính năng mẫu để dự đoán xếp hạng (trên 5) cho mỗi loại rượu và sử dụng thư viện SHAP để đánh giá giá trị tỷ lệ cá cược tỷ số

# Nhập tiêu chuẩnnhập khẩugấu trúcnhưpdnhập khẩunumpynhưnpnhập khẩumatplotlibpyplotnhưpltnhập khẩusinh ra ở biểnsnsnhập khẩushaptích tắc')

Đầu tiên, hãy tải thư viện Chúng tôi sử dụng LightGBM ở đây, nhưng có thể sử dụng bất kỳ thuật toán hồi quy nào

red = pdread_csv('Redcsv')'NV'red = reddrop(red[non_vintage]index, axis=0)'Giá', 'Năm', 'NumberOfRatings']]

Đọc tệp csv, xóa 8 hàng NaN, tạo X từ các cột số và tạo y với Xếp hạng làm cột mục tiêu

 Giá là giá rượu tính bằng euro, Năm là năm sản xuất rượu và NumberOfRatings là số người đã xếp hạng loại rượu này

Tạo và điều chỉnh mô hình

Tiếp theo, khởi tạo và huấn luyện mô hình hồi quy LightGBM (quá trình này mất chưa đến 2 giây, ngay cả trên CPU)

Tạo Trình giải thích và nhận shap_valuese

Tiếp theo, tạo đối tượng Giải thích và nhận giá trị SHAP từ đối tượng đó

# Tạo Trình giải thích và nhận shap_valuese

Tiếp theo, tạo đối tượng Giải thích và nhận giá trị SHAP từ đối tượng đó

print(shap_valuesshape) # (8658, 3)

Đối tượng shap_values có hình dạng giống X và là đối tượng Giải thích

print(shap_values[1])

Nếu nhìn vào nội dung chỉ mục 1 của shap_values, bạn sẽ thấy nó chứa:

・values - chính giá trị SHAP

・base_values - dự đoán trung bình của mô hình

・data -dữ liệu X gốc

 Nếu muốn, bạn có thể truy cập từng cái riêng lẻ bằng cách sử dụng trình truy cập ký hiệu dấu chấm Rất may, hầu hết các biểu đồ shap đều chấp nhận các đối tượng Giải thích và thực hiện các công việc nặng nhọc ở chế độ nền

Hãy vẽ một số đồ thị về thác nước

shapplotswaterfall(shap_values[1])
20220317-1png

Biểu đồ thác nước cho thấy cách giá trị SHAP di chuyển dự đoán mô hình từ giá trị kỳ vọng E[f(X)] hiển thị ở cuối biểu đồ tới giá trị dự đoán f(x) ở trên cùng Chúng được sắp xếp với giá trị SHAP thấp nhất ở phía dưới

shap_valuesbase_values đưa ra nằm ở cuối biểu đồ Dữ liệu X gốc được chỉ định bởi shap_valuesdata hiển thị các tính năng và giá trị tương ứng của chúng ở bên trái Cuối cùng, các giá trị SHAP được chỉ định trong shap_valuesvalues ​​​​được hiển thị bằng mũi tên màu đỏ hoặc xanh lam tùy thuộc vào giá trị dự đoán tăng hay giảm

 NumberOfRatings = 100 và Year = 2017 có tác động tích cực đến loại rượu này, với tổng mức tăng là 0,02 + 0,04 = 0,06 Tuy nhiên, khi Giá = €15,50, giá trị dự đoán Xếp hạng giảm 0,14 Do đó, Xếp hạng dự đoán cho loại rượu này là 3,893 + 0,02 + 0,04 - 0,14 = 3,818, được hiển thị ở đầu biểu đồ Bằng cách tổng hợp các giá trị SHAP, xếp hạng cho loại rượu này được tính là thấp hơn 0,02 + 0,04 - 0,14 = -0,08 so với dự đoán trung bình Khả năng cộng các giá trị SHAP lại với nhau là một thuộc tính quan trọng và là một trong những lý do khiến chúng được gọi là giải thích phụ gia tỷ lệ cá cược tỷ số

Hãy xem một ví dụ khác

shapplotswaterfall(shap_values[14])
20220317-2png

 Loại rượu này cũng có NumberOfRatings = 100 và Year = 2017, nhưng giá trị SHAP thì khác Trong biểu đồ đầu tiên, NumberOfRatings = 100 dẫn đến +0,02, nhưng trong biểu đồ này kết quả là -0,02 Trong biểu đồ đầu tiên, Năm = 2017 là +0,04, nhưng trong biểu đồ này là +0,08 Sự khác biệt này cho thấy ngay cả khi các mẫu có cùng giá trị cho một tính năng cụ thể, điều đó không đảm bảo rằng chúng có cùng giá trị SHAP Bài viết này sẽ không giải thích lý do tại sao, nhưng hiện tại nó đủ tốt để bạn biết

 Cuối cùng, chúng ta hãy xem biểu đồ tầm quan trọng của đặc điểm thường được sử dụng trong các mô hình dựa trên cây quyết định

shapplotsbar(shap_values)
20220317-3png

Chúng tôi đã vẽ giá trị SHAP trung bình cho từng đối tượng địa lý Giá cao nhất với mức trung bình là +0,21, nhưng Năm và NumberOfRatings đều gần bằng +0,03 mỗi loại Do đó, giá trị lớn hơn của các tính năng này thường dẫn đến xếp hạng dự đoán cao hơn

Giá trị tỷ lệ cá cược tỷ số và H2O

Tại H2O, chúng tôi đã kết hợp các giá trị tỷ lệ cá cược tỷ số/SHAP và các kỹ thuật diễn giải mô hình đẳng cấp thế giới khác vào cả đám mây lai AI (thông qua AI không cần lái xe) và H2O-3 Ví dụ: Driverless AI cho phép bạn so sánh giá trị tỷ lệ cá cược tỷ số của các tính năng ban đầu với giá trị tỷ lệ cá cược tỷ số của các tính năng được chuyển đổi bằng kỹ thuật tính năng Kỹ thuật này hữu ích khi bạn đang thực hiện kỹ thuật tính năng tẻ nhạt và muốn biết sự khác biệt về khả năng dự đoán giữa hai bộ

Kết luận

Giá trị tỷ lệ cá cược tỷ số đã được tạo ra hơn 70 năm trước để đảm bảo thanh toán công bằng trong các trò chơi hợp tác Cộng đồng học máy hiện đang áp dụng chúng và sử dụng chúng để diễn giải các mô hình theo những cách phù hợp về mặt lý thuyết Chúng ta chỉ mới giải quyết được phần nổi của tảng băng chìm khi nói đến công cụ mạnh mẽ và có giá trị này Tôi hy vọng bài viết này sẽ giúp bạn có đủ can đảm để sử dụng tỷ lệ cá cược tỷ số và SHAP để thay đổi mô hình hộp đen của bạn thành hộp kính dễ hiểu hơn và tạo ra tác động tích cực lớn trên thế giới

Tiêu đề gốc

(Chính thức) Blog H2Oai

Adam Murphy

đầu trang