SHAP explainability

Explainable AI ด้วย Python

Fouad Trad

Machine Learning Engineer

แนะนำ SHAP

  • SHAPSHapley Additive exPlanations
  • เทคนิค Model-agnostic
  • ใช้ค่า Shapley จากทฤษฎีเกม
  • ค่า SHAP → วัดปริมาณผลของแต่ละฟีเจอร์ต่อการทำนาย

โลโก้ SHAP

Explainable AI ด้วย Python

การแบ่งรายได้ให้สมาชิกวง

ภาพวงดนตรี

Explainable AI ด้วย Python

SHAP explainers

 

  • คำนวณค่า SHAP
  • Tree explainers → โมเดลแบบ tree

ภาพแสดงว่า SHAP explainers แบ่งออกเป็น general explainers ที่ใช้ได้กับโมเดลทุกประเภท และ type-specific explainers ที่ปรับแต่งสำหรับโมเดลประเภทเฉพาะ

Explainable AI ด้วย Python

ชุดข้อมูลการรับเข้าศึกษา

GRE Score TOEFL Score University Rating SOP LOR CGPA Chance of Admit Accept
337 118 4 4.5 4.5 9.65 0.92 1
324 107 4 4 4.5 8.87 0.76 1
316 104 3 3 3.5 8 0.72 1
322 110 3 3.5 2.5 8.67 0.8 1
314 103 2 2 3 8.21 0.45 0

 

  • rf_reg: ทำนายโอกาสรับเข้า
  • rf_class: ทำนายผลการรับเข้า
  • X: dataframe ที่เก็บฟีเจอร์
Explainable AI ด้วย Python

การคำนวณค่า SHAP

import shap
การถดถอย
explainer_reg = shap.TreeExplainer(rf_reg)

shap_values_reg = explainer_reg.shap_values(X)
การจำแนกประเภท
explainer_class = shap.TreeExplainer(rf_class)

shap_values_class = explainer_class.shap_values(X)
Explainable AI ด้วย Python

ทำความเข้าใจผลลัพธ์ของ SHAP

การถดถอย
print(shap_values_reg.shape)  
(400, 6)

ภาพแสดงค่า SHAP ในรูปแบบตารางที่มีมิติเดียวกับ dataframe X (จำนวนตัวอย่าง, จำนวนฟีเจอร์)

Explainable AI ด้วย Python

ทำความเข้าใจผลลัพธ์ของ SHAP

การถดถอย
print(shap_values_reg.shape)  
(400, 6)

ภาพแสดงค่า SHAP ในรูปแบบตารางที่มีมิติเดียวกับ dataframe X (จำนวนตัวอย่าง, จำนวนฟีเจอร์)

การจำแนกประเภท
print(shap_values_class.shape)
(400, 6, 2)

เลือกค่าของ positive class

positive_values = shap_values_class[:,:,1]
Explainable AI ด้วย Python

ความสำคัญของฟีเจอร์

mean_shap_values_class = np.abs(shap_values_class[:, :, 1]).mean(axis=0)
mean_shap_values_reg = np.abs(shap_values_reg).mean(axis=0)

plt.bar(X_train.columns, mean_shap_values_class) plt.bar(X_train.columns, mean_shap_values_reg)

ภาพแสดงความสำคัญของฟีเจอร์สำหรับการถดถอยและการจำแนกประเภท โดยเน้นว่า CGPA และคะแนน GRE มีอิทธิพลมากที่สุดในการทำนายการรับเข้าศึกษา

Explainable AI ด้วย Python

มาฝึกกันเถอะ!

Explainable AI ด้วย Python

Preparing Video For Download...