Lokale verklaarbaarheid met SHAP

Explainable AI in Python

Fouad Trad

Machine Learning Engineer

Globaal vs. lokaal verklaren

Globale verklaarbaarheid
  • Algemeen modelgedrag
  • Verklaart geen individuele gevallen

Docent legt de algemene prestaties van de klas uit aan alle studenten.

Lokale verklaarbaarheid
  • Verklaart de voorspelling voor één datapunt
  • Cruciaal voor gevoelige toepassingen

Docent legt aan een specifieke student de reden voor hun cijfer uit.

1 Afbeeldingen gegenereerd door DALL-E
Explainable AI in Python

Hartziekte-dataset

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: KNN-classificatie voor risico op hartziekte

Explainable AI in Python

Lokale verklaarbaarheid met 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 in Python

SHAP-watervalgrafieken

  • Laat zien hoe features de voorspelling verhogen of verlagen

Een watervalgrafiek met meerdere features en hun bijdrage aan de voorspelling.

Explainable AI in Python

SHAP-watervalgrafieken

  • Laat zien hoe features de voorspelling verhogen of verlagen

Dezelfde watervalgrafiek met de basiswaarde, het startpunt voor de voorspelling.

Explainable AI in Python

SHAP-watervalgrafieken

  • Laat zien hoe features de voorspelling verhogen of verlagen

Dezelfde watervalgrafiek die toont dat features naar rechts de voorspelling verhogen en naar links verlagen.

Explainable AI in Python

Watervalgrafieken maken

shap.waterfall_plot(

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

Watervallen voor meerdere instanties

Figuur met vier watervalgrafieken, één per sample, die tonen dat verschillende samples andere paden naar de modelbeslissing volgen.

Explainable AI in Python

Laten we oefenen!

Explainable AI in Python

Preparing Video For Download...