Spiegazioni locali con SHAP

Explainable AI in Python

Fouad Trad

Machine Learning Engineer

Spiegazioni globali vs locali

Spiegazioni globali
  • Comportamento complessivo del modello
  • Non spiega le singole istanze

Professore che spiega a tutta la classe le prestazioni generali.

Spiegazioni locali
  • Spiega la previsione per un dato specifico
  • Cruciale per applicazioni sensibili

Professore che spiega a uno studente specifico il motivo del suo voto.

1 Immagini generate da DALL-E
Explainable AI in Python

Dataset cardiopatie

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: Classificatore KNN che predice il rischio di cardiopatia

Explainable AI in Python

Spiegazioni locali con 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

Grafici a cascata SHAP

  • Mostra come le feature aumentano o riducono la previsione del modello

Un grafico a cascata che mostra più feature e il contributo di ciascuna alla previsione.

Explainable AI in Python

Grafici a cascata SHAP

  • Mostra come le feature aumentano o riducono la previsione del modello

Stesso grafico a cascata che mostra il valore di base, usato come punto iniziale della previsione.

Explainable AI in Python

Grafici a cascata SHAP

  • Mostra come le feature aumentano o riducono la previsione del modello

Stesso grafico a cascata che mostra che, nei grafici a cascata, le feature che spingono a destra aumentano la previsione mentre quelle che spingono a sinistra la riducono.

Explainable AI in Python

Creare grafici a cascata

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

Cascate per più istanze

Figura con quattro grafici a cascata, uno per campione, che mostra come campioni diversi seguono schemi distinti per arrivare alla decisione del modello.

Explainable AI in Python

Ayo berlatih!

Explainable AI in Python

Preparing Video For Download...