Bộ giải thích kernel SHAP

Explainable AI trong Python

Fouad Trad

Machine Learning Engineer

Bộ giải thích kernel SHAP

 

  • Tính giá trị SHAP cho mọi mô hình

    • K-láng giềng gần nhất
    • Mạng nơ-ron
    • Mô hình dạng cây
  • Chậm hơn bộ giải thích chuyên biệt theo kiểu mô hình

Hình cho thấy bộ giải thích SHAP gồm bộ tổng quát áp dụng cho mọi mô hình và bộ chuyên biệt tối ưu cho từng kiểu mô hình.

Explainable AI trong Python

Bệnh tim

age sex chest_pain_type blood_pressure ecg_results thalassemia target
52 1 0 125 1 3 0
53 1 0 140 0 3 0
70 1 0 145 1 3 0
61 1 0 148 1 3 0
62 0 0 138 1 2 0

 

mlp_clf: perceptron nhiều lớp dự báo nguy cơ bệnh tim

Explainable AI trong Python

Chi phí bảo hiểm

age gender bmi children smoker charges
19 0 27.900 0 1 16884.92
18 1 33.770 1 0 1725.55
28 1 33.000 3 0 4449.46
33 1 22.705 0 0 21984.47
32 1 28.880 0 0 3866.85

 

mlp_reg: perceptron nhiều lớp dự báo chi phí bảo hiểm

Explainable AI trong Python

Tạo bộ giải thích kernel

MLPRegressor
import shap


explainer = shap.KernelExplainer( # Hàm dự báo của mô hình, # Tóm tắt đại diện của tập dữ liệu )
MLPClassifier
import shap


explainer = shap.KernelExplainer( # Hàm dự báo của mô hình, # Tóm tắt đại diện của tập dữ liệu )
Explainable AI trong Python

Tạo bộ giải thích kernel

MLPRegressor
import shap

explainer = shap.KernelExplainer(
  mlp_reg.predict, 
  # Tóm tắt đại diện của tập dữ liệu
)


MLPClassifier
import shap

explainer = shap.KernelExplainer(
  mlp_clf.predict_proba, 
  # Tóm tắt đại diện của tập dữ liệu
)


Explainable AI trong Python

Tạo bộ giải thích kernel

MLPRegressor
import shap

explainer = shap.KernelExplainer(
  mlp_reg.predict, 
  shap.kmeans(X, 10)
)


shap_values_reg = explainer.shap_values(X)
MLPClassifier
import shap

explainer = shap.KernelExplainer(
  mlp_clf.predict_proba, 
  shap.kmeans(X, 10)
)


shap_values_cls = explainer.shap_values(X)
Explainable AI trong Python

Tầm quan trọng đặc trưng

MLPRegressor
mean_reg = np.abs(shap_values_reg).mean(axis=0)

plt.bar(X.columns, mean_reg)

Hình thanh thể hiện mức độ quan trọng đặc trưng cho bài toán hồi quy, cho thấy hút thuốc và tuổi ảnh hưởng mạnh nhất đến dự báo chi phí.

MLPClassifier
mean_cls = np.abs(shap_values_cls[:,:,1]).mean(axis=0)

plt.bar(X.columns, mean_cls)

Hình thanh thể hiện mức độ quan trọng đặc trưng cho bài toán phân loại, cho thấy kiểu đau ngực và thalassemia ảnh hưởng mạnh nhất đến dự báo.

Explainable AI trong Python

So sánh với cách tiếp cận đặc thù mô hình

Hồi quy tuyến tính
plt.bar(X.columns, np.abs(lin_reg.coef_))

Hình thanh thể hiện mức độ quan trọng đặc trưng bằng mô hình hồi quy tuyến tính, cho thấy hút thuốc và tuổi ảnh hưởng mạnh nhất đến chi phí.

Hồi quy logistic
plt.bar(X.columns, np.abs(log_reg.coef_[0]))

Hình thanh thể hiện mức độ quan trọng đặc trưng cho bài toán phân loại, cho thấy kiểu đau ngực ảnh hưởng mạnh nhất đến dự báo.

Explainable AI trong Python

Vamos praticar!

Explainable AI trong Python

Preparing Video For Download...