SHAP-Kernel-Explainer

Erklärbare KI in Python

Fouad Trad

Machine Learning Engineer

SHAP-Kernel-Explainer

 

  • Liefert SHAP-Werte für jedes Modell

    • K-nächste Nachbarn
    • Neuronale Netze
    • Baumbasierte Modelle
  • Langsamer als typspezifische Explainer

Grafik: SHAP-Explainer sind unterteilt in allgemeine (für beliebige Modelle) und typspezifische (für bestimmte Modellarten optimiert).

Erklärbare KI in Python

Herzkrankheiten

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-Perzeptron zur Vorhersage von Herzkrankheitsrisiko

Erklärbare KI in Python

Versicherungskosten

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-Perzeptron zur Vorhersage von Versicherungskosten

Erklärbare KI in Python

Kernel-Explainer erstellen

MLPRegressor
import shap


explainer = shap.KernelExplainer( # Vorhersagefunktion des Modells, # Repräsentative Zusammenfassung des Datensatzes )
MLPClassifier
import shap


explainer = shap.KernelExplainer( # Vorhersagefunktion des Modells, # Repräsentative Zusammenfassung des Datensatzes )
Erklärbare KI in Python

Kernel-Explainer erstellen

MLPRegressor
import shap

explainer = shap.KernelExplainer(
  mlp_reg.predict, 
  # Repräsentative Zusammenfassung des Datensatzes
)


MLPClassifier
import shap

explainer = shap.KernelExplainer(
  mlp_clf.predict_proba, 
  # Repräsentative Zusammenfassung des Datensatzes
)


Erklärbare KI in Python

Kernel-Explainer erstellen

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)
Erklärbare KI in Python

Feature-Importanz

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

plt.bar(X.columns, mean_reg)

Bild: Balkendiagramm der Feature-Importanz für die Regression; Rauchen und Alter beeinflussen die Vorhersage der Kosten am stärksten.

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

plt.bar(X.columns, mean_cls)

Bild: Balkendiagramm der Feature-Importanz für die Klassifikation; Brustschmerztyp und Thalassämie sind am einflussreichsten für die Vorhersage.

Erklärbare KI in Python

Vergleich mit modellspezifischen Ansätzen

Lineare Regression
plt.bar(X.columns, np.abs(lin_reg.coef_))

Bild: Balkendiagramm der Feature-Importanz mit einem linearen Regressionsmodell; Rauchen und Alter beeinflussen die Vorhersage der Kosten am stärksten.

Logistische Regression
plt.bar(X.columns, np.abs(log_reg.coef_[0]))

Bild: Balkendiagramm der Feature-Importanz für die Klassifikation; der Brustschmerztyp ist am einflussreichsten für die Vorhersage.

Erklärbare KI in Python

Lass uns üben!

Erklärbare KI in Python

Preparing Video For Download...