Come utilizzare i valori SHAP per ottimizzare e debuggare modelli di machine learning

Utilizzo dei valori SHAP per ottimizzare e debuggare modelli di machine learning.

Immagina, hai dedicato innumerevoli ore all’addestramento e al perfezionamento del tuo modello, analizzando meticolosamente enormi quantità di dati. Tuttavia, ti manca una comprensione chiara dei fattori che influenzano le sue previsioni e, di conseguenza, ti risulta difficile migliorarlo ulteriormente.

Se ti sei mai trovato in una situazione del genere, cercando di capire cosa succede all’interno di questa scatola nera, sei nel posto giusto. Questo articolo si immergerà nel suggestivo mondo dei valori SHAP (Shapley Additive Explanations), un potente framework che aiuta a spiegare il processo decisionale di un modello e come puoi sfruttarne il potere per ottimizzare e debuggare facilmente i tuoi modelli di ML.

Quindi, senza ulteriori indugi, iniziamo!

Spiegazione dei valori SHAP | Modificato in base alla fonte

Debugging dei modelli utilizzando i valori SHAP

Il debugging del modello è un processo essenziale che implica individuare e correggere i problemi che emergono durante le fasi di addestramento ed valutazione dei modelli di apprendimento automatico. Questo è il campo in cui entrano in gioco i valori SHAP, offrendo un significativo aiuto. Ci aiutano a fare le seguenti cose:

  • 1
    Identificare le caratteristiche che influenzano la previsione
  • 2
    Esplorare il comportamento del modello
  • 3
    Rilevare il bias nei modelli
  • 4
    Valutare la robustezza del modello 

Identificare le caratteristiche che influenzano la previsione

Una parte integrante del debugging del modello consiste nel determinare le caratteristiche che influenzano significativamente le previsioni. I valori SHAP svolgono un ruolo fondamentale in questo compito, permettendoti di identificare le variabili chiave che plasmano l’output di un modello.  

Utilizzando i valori SHAP, è possibile valutare il contributo relativo di ogni caratteristica, fornendo informazioni sui fattori chiave che guidano le previsioni del tuo modello. Le intuizioni ottenute dall’analisi dei valori SHAP su molteplici istanze possono aiutare a determinare la coerenza del modello o rivelare se particolari caratteristiche esercitano un impatto eccessivo, potenzialmente portando a un bias o compromettendo l’affidabilità delle previsioni.

Pertanto, i valori SHAP emergono come uno strumento potente per individuare le caratteristiche influenti all’interno del panorama delle previsioni di un modello. Aiutano a perfezionare e debuggare i modelli, mentre i plot di sintesi e dipendenza agiscono come strumenti efficaci di visualizzazione per comprendere l’importanza delle caratteristiche. Daremo uno sguardo a alcuni di questi plot nelle prossime sezioni.

Esplorare il comportamento del modello

I modelli a volte mostrano output perplessi o comportamenti inaspettati, rendendo fondamentale capirne il funzionamento interno. Ad esempio, supponiamo di avere un modello di rilevazione delle frodi che ha classificato inaspettatamente una transazione legittima come fraudolenta, causando disagio al cliente. Questo è il punto in cui SHAP può risultare prezioso. 

  • Quantificando i contributi di ogni caratteristica a una previsione, i valori SHAP possono aiutare a spiegare perché una determinata transazione è stata classificata come fraudolenta. 
  • I valori SHAP consentono agli operatori di esplorare come un cambiamento in una caratteristica come la storia del credito influenzi la classificazione. 
  • Analizzando i valori SHAP su molteplici istanze, è possibile individuare scenari in cui questo modello potrebbe avere prestazioni inferiori o fallire. 

Rilevare il bias nei modelli

Il bias nei modelli può avere implicazioni profonde, accentuando disparità e ingiustizie sociali. I valori SHAP facilitano l’individuazione delle possibili fonti di bias quantificando l’effetto di ogni caratteristica sulle previsioni del modello. 

Un’attenta esame dei valori SHAP consente agli scienziati dei dati di capire se le decisioni del modello sono influenzate da fattori discriminatori. Questa consapevolezza aiuta gli operatori a eliminare il bias attraverso adeguamenti della rappresentazione delle caratteristiche, correzione degli squilibri dei dati o adozione di metodologie attente alla giustizia. 

Muniti di queste informazioni, gli operatori possono lavorare attivamente per ridurre il bias, garantendo che i loro modelli mantengano la correttezza. Affrontare il bias e garantire la giustizia nei modelli di apprendimento automatico è un obbligo etico essenziale. 

Valutare la robustezza del modello 

La robustezza del modello svolge un ruolo vitale nelle prestazioni del modello, garantendo la sua affidabilità in vari scenari.  

  • Esaminando la coerenza dei contributi delle caratteristiche su diversi campioni, i valori SHAP consentono agli scienziati dei dati di valutare la stabilità e l’affidabilità di un modello. 
  • Analizzando la stabilità dei valori SHAP per ogni caratteristica, gli operatori possono individuare comportamenti inconsistenti o volatili. 
  • Identificando caratteristiche con contributi instabili, gli operatori possono concentrarsi sul miglioramento di questi aspetti attraverso la pre-elaborazione dei dati, l’ingegneria delle caratteristiche o la regolazione del modello. 

Queste irregolarità fungono da segnali di avvertimento, evidenziando eventuali debolezze o instabilità potenziali nel modello. Armati di questa comprensione, gli scienziati dei dati possono adottare misure mirate per migliorare l’affidabilità del modello. 

Ottimizzazione dei modelli utilizzando i valori SHAP

I valori SHAP possono aiutare gli scienziati dei dati a ottimizzare i modelli di apprendimento automatico per una migliore performance ed efficienza, consentendo loro di tenere sotto controllo i seguenti aspetti:

  • 1
    Ingegneria delle caratteristiche
  • 2
    Selezione del modello
  • 3
    Ottimizzazione degli iperparametri 

Ingegneria delle caratteristiche

L’ingegneria delle caratteristiche efficace è una tecnica ben nota per migliorare le prestazioni del modello. Comprendendo l’impatto delle diverse caratteristiche sulle previsioni, è possibile prioritizzare e ottimizzare gli sforzi di ingegneria delle caratteristiche. I valori SHAP forniscono importanti informazioni su questo processo.

Questa analisi consente agli scienziati dei dati di comprendere in modo più preciso l’importanza delle caratteristiche, le interazioni e le relazioni. Ciò li equipaggia per condurre un’ingegneria delle caratteristiche focalizzata, massimizzando l’estrazione delle caratteristiche rilevanti e impattanti.

Con i valori SHAP, i professionisti possono:

  • Scoprire le caratteristiche influenti: I valori SHAP evidenziano le caratteristiche con un impatto sostanziale sulle previsioni, consentendo la loro prioritizzazione durante l’ingegneria delle caratteristiche.
  • Riconoscere le caratteristiche irrilevanti: Le caratteristiche con valori SHAP persistentemente bassi su diverse istanze possono essere meno rilevanti e potenzialmente possono essere eliminate per semplificare il modello.
  • Scoprire le interazioni: I valori SHAP possono evidenziare interazioni tra le caratteristiche non previste, promuovendo la generazione di nuove caratteristiche che migliorano le prestazioni.

Quindi, i valori SHAP semplificano il processo di ingegneria delle caratteristiche, amplificando le capacità predittive del modello facilitando l’estrazione delle caratteristiche più pertinenti.

Selezione del modello

La selezione del modello, una fase critica nella costruzione di modelli ad alte prestazioni, consiste nel selezionare il modello ottimale da un insieme di modelli candidati. I valori SHAP possono assistere in questo processo attraverso:

  • Confronto dei modelli: I valori SHAP, calcolati per ciascun modello, consentono di confrontare le classifiche di importanza delle caratteristiche, fornendo informazioni su come i diversi modelli utilizzano le caratteristiche per formare previsioni.
  • Valutazione della complessità: I valori SHAP possono indicare modelli con una eccessiva dipendenza da interazioni complesse o caratteristiche ad alta cardinalità, che potrebbero essere più suscettibili all’overfitting.

Ottimizzazione degli iperparametri 

L’ottimizzazione degli iperparametri, una fase cruciale per migliorare le prestazioni del modello, consiste nell’ottimizzare gli iperparametri di un modello. I valori SHAP possono aiutare questo processo attraverso:

  • Guidare il processo di ottimizzazione: Se i valori SHAP indicano una eccessiva dipendenza di un modello basato su alberi da una particolare caratteristica, riducendo l’iperparametro max_depth potrebbe incoraggiare il modello a utilizzare maggiormente altre caratteristiche.
  • Valutazione dei risultati dell’ottimizzazione: Un confronto tra i valori SHAP prima e dopo l’ottimizzazione fornisce una comprensione approfondita dell’influenza del processo di ottimizzazione sull’utilizzo delle caratteristiche del modello.

Le informazioni derivate dai valori SHAP consentono agli scienziati dei dati di individuare le configurazioni che portano a prestazioni ottimali.

Funzionalità della libreria SHAP per il debugging e l’ottimizzazione dell’apprendimento automatico

Per fornire una comprensione completa delle funzionalità della libreria SHAP per il debugging e l’ottimizzazione dell’apprendimento automatico (ML), illustreremo le sue capacità attraverso un caso d’uso pratico di previsione di una label.

Per questa dimostrazione, utilizzeremo il dataset “Adult Income”, disponibile su Kaggle. Il dataset “Adult Income” comprende diverse caratteristiche che contribuiscono a determinare il livello di reddito di un individuo. L’obiettivo principale del dataset è prevedere se il reddito di un individuo supera una determinata soglia, precisamente $50,000 all’anno.

Nella nostra esplorazione delle funzionalità di SHAP, approfondiremo le sue capacità offerte con un modello come il classificatore XGBoost. Il processo completo, compresi i passaggi di pre-elaborazione dei dati e di addestramento del modello, può essere trovato in un notebook ospitato su neptune.ai grazie alla sua comoda archiviazione dei metadati, possibilità di confronto rapido e condivisione.

Plot a sciame di SHAP

Il plot a sciame di SHAP visualizza la distribuzione dei valori SHAP tra le caratteristiche in un dataset. Simile a uno sciame di api, l’arrangiamento dei punti rivela informazioni sul ruolo e l’impatto di ciascuna caratteristica sulle previsioni del modello.

Sull’asse x del plot, i punti rappresentano i valori SHAP delle singole istanze dei dati, fornendo informazioni cruciali sull’influenza delle caratteristiche. Una maggiore dispersione o una maggiore densità di punti indica una maggiore variabilità o un impatto più significativo sulle previsioni del modello. Ciò ci consente di valutare la rilevanza delle caratteristiche nel contribuire all’output del modello.

Inoltre, il plot utilizza una mappatura predefinita dei colori sull’asse y per rappresentare valori bassi o alti delle rispettive caratteristiche. Questo schema di colori aiuta a identificare modelli e tendenze nella distribuzione dei valori delle caratteristiche tra le istanze.

I valori SHAP e il grafico delle api del modello Xgboost individuano | Vedi tutto nell’app Neptune

Qui, il grafico delle api SHAP del modello XGboost individua le cinque caratteristiche critiche principali per prevedere se il reddito di un individuo supera i $50.000 all’anno: Stato civile, Età, Guadagno di capitale, Livello di istruzione (denotato come Numero di istruzione) e Ore lavorative settimanali.

Il grafico delle api SHAP ordina le caratteristiche in base al valore assoluto medio dei valori SHAP, che rappresenta l’impatto medio su tutte le istanze. Ciò privilegia le caratteristiche con un’influenza ampia e costante, ma può trascurare le istanze rare con un impatto elevato.

Per concentrarsi sulle caratteristiche che hanno un impatto elevato sulle singole persone, può essere utilizzato un metodo di ordinamento alternativo. Ordinando le caratteristiche in base al valore assoluto massimo dei valori SHAP, mettiamo in evidenza quelle che hanno un impatto più significativo su individui specifici, indipendentemente dalla loro frequenza o presenza.

L’ordinamento delle caratteristiche in base al loro valore SHAP assoluto massimo ci consente di individuare le caratteristiche che mostrano effetti rari ma altamente influenti sulle previsioni del modello. Questo approccio ci consente di identificare i fattori chiave che hanno un impatto significativo sulle singole istanze, fornendo una comprensione più dettagliata dell’importanza delle caratteristiche.

Ordinamento delle caratteristiche in base al valore assoluto massimo dei valori SHAP | Vedi tutto nell’app Neptune

L’ordinamento delle caratteristiche in base al valore assoluto massimo dei valori SHAP rivela le 5 caratteristiche influenti principali: guadagno di capitale, perdita di capitale, età, livello di istruzione e stato civile. Queste caratteristiche dimostrano l’impatto assoluto più elevato sulle previsioni individuali, indipendentemente dall’impatto medio.

Considerando i valori SHAP assoluti massimi, possiamo scoprire caratteristiche rare ma impattanti che influenzano notevolmente le previsioni individuali. Questo approccio di ordinamento ci consente di ottenere preziose informazioni sui fattori chiave che guidano i livelli di reddito nel modello di reddito degli adulti.

Diagramma a barre SHAP

Il diagramma a barre SHAP è un potente strumento di visualizzazione che fornisce informazioni sull’importanza di ciascuna caratteristica in un modello di apprendimento automatico. Utilizza barre orizzontali per rappresentare l’entità e la direzione degli effetti che le caratteristiche hanno sulle previsioni del modello.

Classificando le caratteristiche in base ai valori SHAP assoluti medi, il diagramma a barre offre un’indicazione chiara delle caratteristiche che hanno maggiore influenza sulle previsioni del modello.

La lunghezza di ciascuna barra nel diagramma a barre SHAP corrisponde all’entità del contributo di una caratteristica alla previsione. Barre più lunghe indicano maggiore importanza, significando che la caratteristica corrispondente ha un impatto più sostanziale sull’output del modello.

Per migliorare l’interpretabilità, le barre nel grafico sono spesso codificate con colori per indicare la direzione dell’impatto di una caratteristica. I contributi positivi possono essere rappresentati con un colore, mentre i contributi negativi sono rappresentati con un altro colore. Questo schema di colori consente una comprensione facile e intuitiva se una caratteristica influisce positivamente o negativamente sulla previsione.

I valori SHAP e il diagramma a barre | Vedi tutto nell’app Neptune

Le informazioni derivate dal diagramma a barre locale sono preziose per il debug e l’ottimizzazione, in quanto aiutano a identificare le caratteristiche che richiedono ulteriori analisi o modifiche per migliorare le prestazioni del modello.

Nel caso del diagramma a barre locale, consideriamo l’esempio in cui la caratteristica di razza ha un valore SHAP di -0.29 e si posiziona come la quarta caratteristica più predittiva per la prima istanza di dati.

Il diagramma a barre SHAP locale | Vedi tutto nell’app Neptune

Ciò indica che la caratteristica di razza ha un’influenza negativa sulla previsione per quel particolare punto dati. Questa scoperta richiama l’attenzione sulla necessità di indagini per la costruzione di modelli consapevoli della giustizia. Analizzare i possibili bias e garantire l’equità è fondamentale, specialmente se la razza viene considerata un attributo protetto.

Dovrebbe essere prestata particolare attenzione alla valutazione delle prestazioni del modello tra diversi gruppi razziali e alla mitigazione di eventuali effetti discriminatori. La combinazione di grafici a barre globali e locali fornisce preziose informazioni per il debug e l’ottimizzazione del modello.

Grafico a cascata SHAP

Il grafico a cascata SHAP è uno strumento eccellente per comprendere il contributo delle singole caratteristiche a una specifica previsione. Fornisce una visualizzazione concisa e intuitiva che consente ai data scientist di valutare l’effetto incrementale di ciascuna caratteristica sull’output del modello, facilitando l’ottimizzazione e il debug del modello.

Il grafico parte da una previsione di base e rappresenta visivamente come l’aggiunta o la rimozione di ciascuna caratteristica modifica la previsione. I contributi positivi sono rappresentati come barre che spingono la previsione verso l’alto, mentre i contributi negativi sono rappresentati come barre che abbassano la previsione.

La lunghezza e la direzione di queste barre nel grafico a cascata SHAP forniscono preziose informazioni sull’influenza di ciascuna caratteristica sul processo decisionale del modello.

Valori SHAP e il grafico a cascata | Vedi nell’app Neptune

Grafico a forza SHAP

Il grafico a forza SHAP e il grafico a cascata sono simili nel senso che entrambi mostrano come le caratteristiche di un punto dati contribuiscono alla previsione del modello, in quanto entrambi mostrano l’entità e la direzione del contributo come frecce o barre.

La differenza principale tra i due grafici è l’orientamento. I grafici a forza SHAP mostrano le caratteristiche da sinistra a destra, con i contributi positivi a sinistra e i contributi negativi a destra. I grafici a cascata mostrano le caratteristiche dall’alto verso il basso, con i contributi positivi in cima e i contributi negativi in fondo.

Valori SHAP e il grafico a forza | Vedi nell’app Neptune

Il grafico a forza impilato è particolarmente utile per esaminare le istanze classificate erroneamente e acquisire informazioni sui fattori che guidano tali classificazioni errate. Ciò consente una comprensione più approfondita del processo decisionale del modello e aiuta a individuare aree che richiedono ulteriori indagini o miglioramenti.

Valori SHAP e il grafico a forza impilato | Vedi nell’app Neptune

Grafico di dipendenza SHAP

Il grafico di dipendenza SHAP è uno strumento di visualizzazione che aiuta a comprendere la relazione tra una caratteristica e la previsione del modello. Consente di vedere come cambia la relazione tra la caratteristica e la previsione man mano che il valore della caratteristica cambia.

In un grafico a dispersione di dipendenza SHAP, la caratteristica di interesse è rappresentata sull’asse orizzontale, mentre i valori SHAP corrispondenti sono tracciati sull’asse verticale. Ogni punto dati nel grafico a dispersione rappresenta un’istanza del dataset, con il valore della caratteristica e il valore SHAP corrispondente associati a quell’istanza.

Valori SHAP e il grafico di dipendenza | Vedi nell’app Neptune

In questo esempio, il grafico a dispersione di dipendenza SHAP mostra la relazione non lineare tra la caratteristica “età” e i suoi valori SHAP corrispondenti. Sull’asse x, vengono visualizzati i valori “età”, mentre l’asse y rappresenta i valori SHAP associati a ciascun valore “età”.

Osservando il grafico a dispersione, possiamo osservare una tendenza positiva in cui il contributo della caratteristica “età” aumenta man mano che il valore “età” aumenta. Ciò suggerisce che valori più alti di “età” hanno un impatto positivo sulla previsione del modello.

Per identificare possibili effetti di interazione tra le caratteristiche, possiamo migliorare il grafico di dispersione di dipendenza dell’età incorporando la codifica del colore in base a un’altra caratteristica. Passando l’intero oggetto Explanation al parametro del colore, l’algoritmo del grafico a dispersione tenta di identificare la colonna di caratteristiche che mostra l’interazione più forte con l’età, oppure possiamo definire noi stessi la caratteristica.

Esaminando il grafico a dispersione, possiamo analizzare il pattern e la tendenza della relazione tra l’età e l’output del modello tenendo conto dei diversi livelli di ore_lavorative_settimanali. Se c’è un effetto di interazione, sarà evidente attraverso pattern distinti nel grafico a dispersione.

SHAP values e il grafico interattivo | Vedilo nell’app Neptune

In questo grafico, possiamo osservare che le persone che lavorano meno ore a settimana hanno maggiori probabilità di avere vent’anni. Questo gruppo di età include tipicamente studenti o persone che stanno appena iniziando la loro carriera. Il grafico indica che queste persone hanno una minore probabilità di guadagnare oltre $50k.

Questo pattern suggerisce che il modello ha imparato dai dati che le persone di vent’anni, che tendono a lavorare meno ore a settimana, hanno minori probabilità di guadagnare redditi più alti.

Conclusioni

In questo articolo, abbiamo esplorato come utilizzare i valori SHAP per ottimizzare e debuggare i modelli di apprendimento automatico. I valori SHAP forniscono uno strumento potente per comprendere il comportamento del modello e identificare le caratteristiche importanti per le previsioni.

Abbiamo discusso varie caratteristiche della libreria SHAP, tra cui i grafici a sciame di api, i grafici a barre, i grafici a cascata, i grafici di forza e i grafici di dipendenza, che aiutano a visualizzare e interpretare i valori SHAP.

I punti chiave dell’articolo includono:

  • I valori SHAP ci aiutano a capire come funzionano i modelli e identificare le caratteristiche influenti.
  • I valori SHAP possono evidenziare le caratteristiche irrilevanti che hanno poco impatto sulle previsioni.
  • I valori SHAP forniscono informazioni per migliorare le prestazioni del modello identificando aree di miglioramento.
  • La libreria SHAP offre una gamma di tecniche di visualizzazione per una migliore comprensione e debug dei modelli.

Spero che dopo aver letto questo articolo, considererai SHAP come uno strumento prezioso nel tuo arsenale per il debug e l’ottimizzazione dei tuoi modelli di apprendimento automatico.

Riferimenti

  • https://github.com/slundberg/shap
  • https://christophm.github.io/interpretable-ml-book/shap.html