Keterjelasan SHAP

Explainable AI in Python

Fouad Trad

Machine Learning Engineer

Pengantar SHAP

  • SHAPSHapley Additive exPlanations
  • Teknik yang independen dari model
  • Menggunakan nilai Shapley dari teori permainan
  • Nilai SHAP → kuantifikasi kontribusi fitur pada prediksi

Logo SHAP

Explainable AI in Python

Membagi laba antar anggota band

Gambar untuk sebuah band musik.

Explainable AI in Python

SHAP explainer

 

  • Hitung nilai SHAP
  • Tree explainer → untuk model berbasis pohon

Gambar yang menunjukkan bahwa SHAP explainer terbagi antara general explainer yang bisa diterapkan ke model apa pun dan type-specific explainer yang dioptimalkan untuk tipe model tertentu.

Explainable AI in Python

Dataset penerimaan

Skor GRE Skor TOEFL Peringkat Universitas SOP LOR CGPA Peluang Diterima Diterima
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: memprediksi peluang diterima
  • rf_class: memprediksi penerimaan
  • X: dataframe berisi fitur
Explainable AI in Python

Menurunkan nilai SHAP

import shap
Regresi
explainer_reg = shap.TreeExplainer(rf_reg)

shap_values_reg = explainer_reg.shap_values(X)
Klasifikasi
explainer_class = shap.TreeExplainer(rf_class)

shap_values_class = explainer_class.shap_values(X)
Explainable AI in Python

Memahami keluaran SHAP

Regresi
print(shap_values_reg.shape)  
(400, 6)

Gambar yang menunjukkan nilai SHAP sebagai tabel dengan dimensi yang sama dengan dataframe X (jumlah sampel, jumlah fitur)

Explainable AI in Python

Memahami keluaran SHAP

Regresi
print(shap_values_reg.shape)  
(400, 6)

Gambar yang menunjukkan nilai SHAP sebagai tabel dengan dimensi yang sama dengan dataframe X (jumlah sampel, jumlah fitur)

Klasifikasi
print(shap_values_class.shape)
(400, 6, 2)

Pilih nilai kelas positif

positive_values = shap_values_class[:,:,1]
Explainable AI in Python

Pentingnya fitur

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)

Gambar yang menunjukkan pentingnya fitur untuk regresi dan klasifikasi, menyoroti bahwa nilai CGPA dan GRE paling memengaruhi prediksi penerimaan.

Explainable AI in Python

Ayo berlatih!

Explainable AI in Python

Preparing Video For Download...