Giải thích cục bộ với SHAP

Explainable AI trong Python

Fouad Trad

Machine Learning Engineer

Giải thích toàn cục vs. cục bộ

Giải thích toàn cục
  • Hành vi tổng thể của mô hình
  • Không giải thích từng trường hợp

Giảng viên giải thích hiệu suất chung của cả lớp cho tất cả sinh viên.

Giải thích cục bộ
  • Giải thích dự đoán cho một điểm dữ liệu cụ thể
  • Quan trọng cho ứng dụng nhạy cảm

Giảng viên giải thích cho một sinh viên lý do đằng sau điểm số của em ấy.

1 Hình ảnh được tạo bởi DALL-E
Explainable AI trong Python

Bộ dữ liệu 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

 

knn: Bộ phân loại KNN dự đoán nguy cơ bệnh tim

Explainable AI trong Python

Giải thích cục bộ với SHAP

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

test_instance = X.iloc[0, :]
shap_values = explainer.shap_values(test_instance)
print(shap_values.shape)
(6, 2)
Explainable AI trong Python

Biểu đồ thác nước SHAP

  • Cho thấy đặc trưng và mức đóng góp của từng đặc trưng vào dự đoán

Biểu đồ thác nước hiển thị nhiều đặc trưng và mức đóng góp của từng đặc trưng vào dự đoán.

Explainable AI trong Python

Biểu đồ thác nước SHAP

  • Cho thấy đặc trưng làm tăng hoặc giảm dự đoán của mô hình

Biểu đồ thác nước giống nhau hiển thị giá trị cơ sở, làm điểm xuất phát cho dự đoán.

Explainable AI trong Python

Biểu đồ thác nước SHAP

  • Cho thấy đặc trưng làm tăng hoặc giảm dự đoán của mô hình

Biểu đồ thác nước cho thấy đặc trưng đẩy sang phải làm tăng dự đoán, đẩy sang trái làm giảm.

Explainable AI trong Python

Tạo biểu đồ thác nước

shap.waterfall_plot(

shap.Explanation(
values=shap_values[:,1],
base_values=explainer.expected_value[1],
data=test_instance,
feature_names=X.columns
)
)
Explainable AI trong Python

Thác nước cho nhiều mẫu

Hình gồm bốn biểu đồ thác nước, mỗi biểu đồ cho một mẫu, minh họa các mẫu khác nhau đi theo lộ trình khác nhau để đến quyết định của mô hình.

Explainable AI trong Python

Ayo berlatih!

Explainable AI trong Python

Preparing Video For Download...