SHAP-Erklärbarkeit

Erklärbare KI in Python

Fouad Trad

Machine Learning Engineer

Einführung in SHAP

  • SHAP → SHapley Additive exPlanations
  • Modellagnostische Technik
  • Nutzt Shapley-Werte aus der Spieltheorie
  • SHAP-Werte → quantifizieren Feature-Beiträge zu Vorhersagen

SHAP-Logo

Erklärbare KI in Python

Gewinn unter Bandmitgliedern aufteilen

Bild einer Musikband.

Erklärbare KI in Python

SHAP-Explainers

 

  • SHAP-Werte berechnen
  • Tree Explainers → baumbasierte Modelle

Bild: SHAP-Explainers sind aufgeteilt in allgemeine (für beliebige Modelle) und spezialisierte (optimiert für bestimmte Modelltypen).

Erklärbare KI in Python

Admissions-Datensatz

GRE Score TOEFL Score University Rating SOP LOR CGPA Chance of Admit Accept
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: sagt Zulassungswahrscheinlichkeit voraus
  • rf_class: sagt Annahme voraus
  • X: DataFrame mit Features
Erklärbare KI in Python

SHAP-Werte ableiten

import shap
Regression
explainer_reg = shap.TreeExplainer(rf_reg)

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

shap_values_class = explainer_class.shap_values(X)
Erklärbare KI in Python

SHAP-Ausgabe verstehen

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

Bild: SHAP-Werte als Tabelle mit denselben Dimensionen wie das X-DataFrame (Anzahl Samples, Anzahl Features)

Erklärbare KI in Python

SHAP-Ausgabe verstehen

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

Bild: SHAP-Werte als Tabelle mit denselben Dimensionen wie das X-DataFrame (Anzahl Samples, Anzahl Features)

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

Werte der positiven Klasse wählen

positive_values = shap_values_class[:,:,1]
Erklärbare KI in Python

Feature-Importanz

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)

Bild: Feature-Importanz für Regression und Klassifikation; CGPA und GRE sind am einflussreichsten für die Zulassungsvorhersage.

Erklärbare KI in Python

Lass uns üben!

Erklärbare KI in Python

Preparing Video For Download...