Penjelas kernel SHAP

Explainable AI in Python

Fouad Trad

Machine Learning Engineer

Penjelas kernel SHAP

 

  • Menghasilkan nilai SHAP untuk model apa pun

    • K-nearest neighbors
    • Neural network
    • Model berbasis pohon
  • Lebih lambat daripada penjelas khusus tipe

Gambar menunjukkan bahwa penjelas SHAP terbagi antara penjelas umum yang dapat diterapkan ke model apa pun dan penjelas khusus tipe yang dioptimalkan untuk tipe model tertentu.

Explainable AI in Python

Penyakit jantung

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: multilayer perceptron untuk memprediksi risiko penyakit jantung

Explainable AI in Python

Biaya asuransi

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: multilayer perceptron untuk memprediksi biaya asuransi

Explainable AI in Python

Membuat penjelas kernel

MLPRegressor
import shap


explainer = shap.KernelExplainer( # Fungsi prediksi model, # Ringkasan representatif dataset )
MLPClassifier
import shap


explainer = shap.KernelExplainer( # Fungsi prediksi model, # Ringkasan representatif dataset )
Explainable AI in Python

Membuat penjelas kernel

MLPRegressor
import shap

explainer = shap.KernelExplainer(
  mlp_reg.predict, 
  # Ringkasan representatif dataset
)


MLPClassifier
import shap

explainer = shap.KernelExplainer(
  mlp_clf.predict_proba, 
  # Ringkasan representatif dataset
)


Explainable AI in Python

Membuat penjelas 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 in Python

Pentingnya fitur

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

plt.bar(X.columns, mean_reg)

Gambar menampilkan diagram batang pentingnya fitur pada tugas regresi, menyoroti bahwa perokok dan usia paling berpengaruh dalam memprediksi biaya.

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

plt.bar(X.columns, mean_cls)

Gambar menampilkan diagram batang pentingnya fitur pada tugas klasifikasi, menyoroti bahwa jenis nyeri dada dan talasemia paling berpengaruh dalam memprediksi hasil.

Explainable AI in Python

Membandingkan dengan pendekatan khusus model

Regresi linear
plt.bar(X.columns, np.abs(lin_reg.coef_))

Gambar menampilkan diagram batang pentingnya fitur menggunakan model regresi linear, menyoroti bahwa perokok dan usia paling berpengaruh dalam memprediksi biaya.

Regresi logistik
plt.bar(X.columns, np.abs(log_reg.coef_[0]))

Gambar menampilkan diagram batang pentingnya fitur pada tugas klasifikasi, menyoroti bahwa jenis nyeri dada paling berpengaruh dalam memprediksi hasil.

Explainable AI in Python

Ayo berlatih!

Explainable AI in Python

Preparing Video For Download...