0Pricing
Learn AI with Python · Lezione

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_plot mostra quali feature influenzano maggiormente il modello nel suo complesso
  • Locale: force_plot e waterfall_plot spiegano 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 alberi
  • explainer.shap_values(X_test) restituisce i contributi di ogni feature
  • Il beeswarm di summary_plot mostra l'importanza globale
  • force_plot e waterfall_plot spiegano 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

  1. Rilevamento dei bias nei modelli ML
  2. Valori SHAP per l'interpretabilità dei modelli
  3. LIME: spiegazioni locali interpretabili
  4. Etica dell'AI e framework di governance
← Torna a Learn AI with Python