Learn AI with Python · Lezione

LIME: spiegazioni locali interpretabili

lime.tabular.LimeTabularExplainer, perturbazione dell'input, approssimazione lineare locale

Lezione 3 di 413 passaggi

LIME: spiegazioni locali interpretabili è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 3 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.

Che cos'è LIME

LIME (Local Interpretable Model-agnostic Explanations) spiega una singola predizione adattando un modello semplice e interpretabile, come la regressione lineare, al comportamento del modello complesso in un piccolo vicinato attorno a quella specifica istanza.

Locale, non globale

Un modello black box può essere fortemente non lineare nel suo complesso, ma vicino a un punto può essere approssimativamente lineare. LIME sfrutta proprio questa proprietà: non spiega l'intero modello, ma solo il suo comportamento locale attorno all'istanza di interesse.

Come funziona LIME

LIME perturba l'istanza per creare molti campioni vicini, chiede al modello black box di produrre le relative predizioni, assegna un peso ai campioni in base alla loro vicinanza all'originale e quindi adatta un modello surrogato interpretabile. I coefficienti del modello surrogato costituiscono la spiegazione.

Indipendente dal modello

Poiché LIME invoca soltanto la funzione di predizione del modello, funziona con qualsiasi classificatore o regressore: reti neurali, gradient boosting e persino un'API esterna. Tratta il modello come una scatola nera.

LimeTabularExplainer

Per i dati tabellari si crea un LimeTabularExplainer a partire dai dati di addestramento e dai nomi delle feature. Utilizza la distribuzione dei dati di addestramento per generare perturbazioni realistiche.

from lime.lime_tabular import LimeTabularExplainer

explainer = LimeTabularExplainer(
    training_data=X_train.values,
    feature_names=X_train.columns.tolist(),
    class_names=["denied", "approved"],
    mode="classification",
)

explain_instance

Per spiegare una riga, si chiama explain_instance passando la riga e la funzione predict_proba del modello. LIME crea perturbazioni attorno a quella riga e adatta il modello surrogato locale.

exp = explainer.explain_instance(
    data_row=X_test.values[0],
    predict_fn=model.predict_proba,
    num_features=5,
)

predict_proba, non predict

Per la classificazione, LIME ha bisogno delle probabilità, non delle etichette rigide, perché il modello surrogato esegue una regressione sulla superficie delle probabilità. Si passi sempre model.predict_proba, o una funzione che restituisca le probabilità delle classi.

Il parametro num_features

num_features limita il numero di feature visualizzate nella spiegazione. Un numero inferiore produce una spiegazione più semplice e comprensibile, che mette in evidenza solo i fattori locali più rilevanti.

Come leggere i pesi delle feature

exp.as_list() restituisce la spiegazione come coppie (condizione della feature, peso). Un peso positivo ha spinto la predizione verso la classe predetta, mentre un peso negativo l'ha allontanata.

for feature, weight in exp.as_list():
    print(feature, round(weight, 3))
# income > 50000     0.21
# debt_ratio > 0.4  -0.18

Visualizzazione della spiegazione

LIME può visualizzare la spiegazione sotto forma di grafico interattivo o vista per notebook, mostrando fianco a fianco le barre dei contributi e le probabilità predette.

exp.show_in_notebook(show_table=True)
# or
fig = exp.as_pyplot_figure()

LIME e SHAP

Entrambi spiegano singole predizioni, ma presentano differenze:

  • SHAP offre solide garanzie teoriche, come additività e coerenza, oltre a una visione globale
  • LIME è più rapido da comprendere, indipendente dal modello e intuitivo, ma il suo modello surrogato locale è un'approssimazione che può variare a causa della casualità delle perturbazioni

Verifica rapida

Metta alla prova le Sue conoscenze su LIME.

Riepilogo

Ha imparato a creare spiegazioni locali con LIME:

  • LimeTabularExplainer viene creato a partire dai dati di addestramento e dai nomi delle feature
  • explain_instance utilizza model.predict_proba per adattare un modello surrogato locale
  • num_features controlla la dimensione della spiegazione
  • as_list() restituisce i pesi con segno delle feature
  • LIME è indipendente dal modello e locale, e completa SHAP
Gratis per iniziare

Impara Python con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
53
Lezioni
225

Domande Frequenti

La lezione «LIME: spiegazioni locali interpretabili» è gratuita?

Sì — il testo completo di «LIME: spiegazioni locali interpretabili» è 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 «LIME: spiegazioni locali interpretabili»?

lime.tabular.LimeTabularExplainer, perturbazione dell'input, approssimazione lineare locale 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 3 di 4.

Quanto tempo richiede la lezione «LIME: spiegazioni locali interpretabili»?

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