Valori SHAP per l'interpretabilità dei modelli
shap.Explainer, TreeExplainer, force plot, beeswarm plot, classificazione dell'importanza delle feature
Valori SHAP per l'interpretabilità dei modelli è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.
Perché la spiegabilità è importante
I modelli complessi sono accurati, ma opachi. La spiegabilità risponde alla domanda «perché il modello ha prodotto questa predizione?», un aspetto essenziale per la fiducia, il debugging e la conformità normativa. SHAP è uno dei metodi di spiegazione più utilizzati.
Che cosa misura SHAP
SHAP (SHapley Additive exPlanations) assegna a ogni feature un contributo per una singola predizione. I valori si basano sui valori di Shapley della teoria dei giochi cooperativi: ogni feature è un «giocatore» e il suo valore SHAP rappresenta la sua quota equa della predizione rispetto a un valore di riferimento.
Additività
I valori SHAP sono additivi: il valore di riferimento, cioè l'output medio del modello, più la somma di tutti i valori SHAP delle feature equivale alla predizione effettiva. In questo modo ogni spiegazione costituisce una rendicontazione completa e verificabile dell'output.
# prediction = base_value + sum(shap_values_for_each_feature)TreeExplainer
Per i modelli ad alberi (XGBoost, LightGBM, random forest), shap.TreeExplainer calcola rapidamente valori SHAP esatti sfruttando la struttura degli alberi.
import shap
import xgboost
model = xgboost.XGBClassifier().fit(X_train, y_train)
explainer = shap.TreeExplainer(model)Calcolo di shap_values
explainer.shap_values(X_test) restituisce una matrice: un valore SHAP per ogni feature di ogni riga. Questi sono i contributi grezzi che verranno visualizzati.
shap_values = explainer.shap_values(X_test)
print(shap_values.shape) # (n_samples, n_features)Il beeswarm di summary_plot
shap.summary_plot produce un beeswarm: ogni punto rappresenta un campione per una feature. La posizione mostra il valore SHAP, cioè la direzione e l'entità dell'impatto; il colore mostra il valore della feature. Le feature sono ordinate in base all'importanza complessiva.
shap.summary_plot(shap_values, X_test)Come leggere il beeswarm
Per leggere un beeswarm:
- Le feature in cima sono le più importanti a livello globale
- I punti molto a destra aumentano la predizione, mentre quelli molto a sinistra la riducono
- Il colore rivela la direzione: per esempio, valori elevati della feature, mostrati in rosso, sulla destra significano che «un valore elevato aumenta la predizione»
Spiegare una singola predizione
SHAP è particolarmente efficace a livello individuale. Per spiegare una singola riga sono necessari i relativi valori SHAP e il valore di base del modello.
idx = 0
base = explainer.expected_value
row_shap = shap_values[idx]force_plot
shap.force_plot mostra una predizione come un insieme di forze che partono dal valore di base: le feature rosse spingono l'output verso l'alto, mentre quelle blu lo spingono verso il basso. Il risultato netto coincide con la predizione finale.
shap.force_plot(
explainer.expected_value,
shap_values[0],
X_test.iloc[0],
)waterfall_plot
shap.waterfall_plot è la visualizzazione più leggibile per una singola predizione. Parte dal valore di base e aggiunge ogni contributo delle feature, passo dopo passo, fino a raggiungere l'output finale, ordinando i contributi in base all'entità.
shap.waterfall_plot(
shap.Explanation(
values=shap_values[0],
base_values=explainer.expected_value,
data=X_test.iloc[0],
)
)Globale e locale
SHAP risponde a due esigenze:
- Globale:
summary_plotmostra quali feature influenzano maggiormente il modello nel suo complesso - Locale:
force_plotewaterfall_plotspiegano una specifica predizione
Entrambe le viste derivano dagli stessi valori SHAP e offrono quindi una spiegazione coerente a scale diverse.
Verifica rapida
Metta alla prova le Sue conoscenze su SHAP.
Riepilogo
Ha imparato a interpretare la spiegabilità dei modelli con SHAP:
shap.TreeExplainer(model)calcola valori esatti per i modelli ad alberiexplainer.shap_values(X_test)restituisce i contributi di ogni feature- Il beeswarm di
summary_plotmostra l'importanza globale force_plotewaterfall_plotspiegano una singola predizione- I valori SHAP sono additivi: base + contributi = predizione
Domande Frequenti
La lezione «Valori SHAP per l'interpretabilità dei modelli» è gratuita?
Sì — il testo completo di «Valori SHAP per l'interpretabilità dei modelli» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.
Cosa imparerò in «Valori SHAP per l'interpretabilità dei modelli»?
shap.Explainer, TreeExplainer, force plot, beeswarm plot, classificazione dell'importanza delle feature Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Learn AI with Python?
Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Valori SHAP per l'interpretabilità dei modelli»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?
Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Rilevamento dei bias nei modelli ML
- Valori SHAP per l'interpretabilità dei modelli
- LIME: spiegazioni locali interpretabili
- Etica dell'AI e framework di governance