Generazione di set di dati SHAP durante le previsioni
I set di dati sull'importanza SHAP possono essere generati quando si esegue una previsione. È possibile utilizzare i calcoli SHAP in questi set di dati per comprendere quali funzioni sono i contributori più importanti per i valori previsti.
I set di dati SHAP contengono i calcoli SHAP a livello di riga per le funzioni utilizzate per addestrare il modello. Questi valori rappresentano il contributo di ciascuna funzione al valore previsto della destinazione, date tutte le altre funzioni di quella riga.
Ad esempio, l'importanza SHAP può indicare se una funzione rende un cliente più o meno propenso alla disdetta e quanto influisce su questo risultato.
Quando si esegue la previsione e si generano i set di dati, è possibile caricare i valori SHAP in un'app Qlik Sense e visualizzarle insieme ai valori previsti. Per ulteriori dettagli, vedere Visualizzazione dei valori SHAP nelle app Qlik Sense e Utilizzo dei valori SHAP nelle applicazioni reali
In questa sezione della guida descrive nel dettaglio il processo di generazione dei set di dati SHAP durante le previsioni tramite distribuzioni di ML. Per informazioni sui grafici dell'importanza SHAP mostrati durante l'addestramento dell'esperimento, vedere Nozioni sull'importanza SHAP nell'addestramento dell'esperimento.
Opzioni disponibili per la generazione dei set di dati SHAP
Quando si configura una previsione, è possibile scegliere di generare i set di dati SHAP con due formati differenti. Entrambe le opzioni forniscono le stesse informazioni, ma queste sono strutturate in modi differenti.
SHAP
Un set di dati in cui i valori SHAP sono separati in una colonna per ogni funzione. Questa opzione non è disponibile per i modelli di classificazione multiclasse.
Coordinata SHAP
Un set di dati in cui tutti i valori SHAP sono strutturati in modo da essere contenuti solo in due colonne: una colonna per le 'funzioni' e una per i 'valori'. Questa opzione è disponibile per tutti i tipi di modelli.
I set di dati dai modelli multiclasse funzionano in modo leggermente differente in confronto ai set di dati dai modelli binari. Per ogni record per cui si desidera generare nella previsione, viene creata una nuova riga con i valori SHAP per ogni classe possibile disponibile per la previsione da parte del modello. Nel set di dati viene creata anche un'altra colonna per identificare la classe rappresentata dal valore SHAP.
Quando si caricano previsioni e valori SHAP in un'app Qlik Sense e si crea un modello dati, i set di dati della coordinata SHAP possono essere più facili da utilizzare dei set di dati SHAP.
Esempi
Le seguenti tabelle contengono esempi dai set di dati SHAP e della coordinata SHAP, generati da un modello di regressione addestrato con cinque funzioni. Gli esempi contengono valori SHAP per due record dal Set di dati di applicazione (corrispondente a due ID account).
Questi esempi evidenziano la differenza su come sono strutturati i dati.
AccountID | AdditionalFeatureSpend_SHAP | Churned_SHAP | CurrentPeriodUsage_SHAP | HasRenewed_SHAP | NumberOfPenalties_SHAP |
---|---|---|---|---|---|
aa16889 | 1.76830971241 | -0.58154511451721 | -1.106874704361 | -0.36080026626587 | 3.6597540378571 |
aa33396 | 0.80359643697739 | -0.64805734157562 | 0.076582334935665 | 0.38967734575272 | -0.31007811427116 |
AccountID | automl_feature | SHAP_value |
---|---|---|
aa16889 | AdditionalFeatureSpend | 1.76830971241 |
aa16889 | Churned | -0.58154511451721 |
aa16889 | CurrentPeriodUsage | -1.106874704361 |
aa16889 | HasRenewed | -0.36080026626587 |
aa16889 | NumberOfPenalties | 3.6597540378571 |
aa33396 | AdditionalFeatureSpend | 0.80359643697739 |
aa33396 | Churned | -0.64805734157562 |
aa33396 | CurrentPeriodUsage | 0.076582334935665 |
aa33396 | HasRenewed | 0.38967734575272 |
aa33396 | NumberOfPenalties | -0.31007811427116 |
Interpretazione dei valori di previsione SHAP
A differenza dei valori nel grafico Importanza SHAP mostrati durante l'addestramento dell'esperimento, i set di dati SHAP contengono i calcoli SHAP a livella di riga che dispongono di direzionalità. In altre parole, non si tratta di valori assoluti, ma possono invece essere positivi o negativi. Quando si visualizzano i valori in un'applicazione, è possibile scegliere di aggregarli come valori assoluti, a seconda del caso di utilizzo.
Il valore SHAP per un record deve essere analizzato rispetto al valore previsto corrispondente per quel record. A seconda del tipo di modello (classificazione binaria, classificazione multiclasse o regressione), la direzionalità dei valori SHAP deve essere interpretata in modo leggermente differente.
Modelli di classificazione
Con i modelli di classificazione binaria, i valori SHAP positivi elevati indicano un'influenza maggiore verso uno di due possibili risultati, mentre i valori altamente negativi indicano una maggiore influenza verso l'altro risultato. Quando si utilizzano i dati in un'applicazione, la direzionalità dei valori SHAP potrebbe non consentire l'analisi richiesta. Per risolvere questo problema, è possibile invertire la direzione dei valori SHAP (per esempio, moltiplicare l'intera colonna per -1). Per maggiori informazioni sul controllo della direzione SHAP, vedere Preparazioni.
Un set di dati SHAP da un modello multiclasse è strutturato in modo differente. Per ogni record da prevedere, include una riga separata per ogni classe possibile, oltre al valore SHAP corrispondente per quella classe. La classe viene specificata nella colonna 'Predicted_class'.
Nel set di dati della coordinata SHAP, interpretare i valori SHAP dalle previsioni del modello multiclasse come segue:
Un valore SHAP positivo elevato indica che la funzione ha una maggiore influenza verso il risultato che è la categoria 'Predicted_class' specificata.
Un valore SHAP negativo elevato indica che la funzione ha una maggiore influenza verso il risultato che non corrisponde alla categoria 'Predicted_class' specificata.
Esempio
Il seguente esempio mostra la differenza nella struttura del set di dati tra l'output di un modello di classificazione binario e di uno multiclasse.
Supponiamo di iniziare con un Set di dati di applicazione che contiene una riga per ogni ID account. Ogni funzione utilizzata per l'addestramento del modello viene rappresentata come una colonna separata.
Ecco come apparirà il record di un singolo ID account:
AccountID | AdditionalFeatureSpend | BaseFee | CurrentPeriodUsage | HasRenewed | NumberOfPenalties |
---|---|---|---|---|---|
aa16889 | 18 | 33.52 | 210.1 | yes | 4 |
Se addestriamo un modello di classificazione binaria in modo che preveda il risultato di un campo Churned, saranno possibili sono due risultati: 'sì' o 'no'. In base al record di un singolo ID account riportato sopra, così è come apparirà il set di dati della coordinata SHAP per quel record:
AccountID | automl_feature | SHAP_value |
---|---|---|
aa16889 | AdditionalFeatureSpend | -0.049129267835076 |
aa16889 | BaseFee | -1.5363064624041 |
aa16889 | CurrentPeriodUsage | 0.10787960191299 |
aa16889 | HasRenewed | 1.2441783315923 |
aa16889 | NumberOfPenalties | 2.3803616183224 |
Nella tabella riportata sopra, vengono visualizzati i valori SHAP per l'ID del singolo account, che vengono analizzati in base alla funzione. Viene creata una nuova riga per ogni funzione, e a ognuna di queste viene assegnato un valore SHAP. La direzione e la magnitudine di questi valori SHAP deve essere valutata in relazione a due possibili risultati. Idealmente, quanto maggiore è il valore SHAP, tanto maggiore sarà l'influenza che la funzione ha sul risultato con un'interpretazione positiva (in questo caso, 'sì'). Se questa rappresentazione invece è inversa, è possibile invertire la direzione dei valori SHAP (ossia moltiplicarli per -1) per rendere l'analisi più facile da interpretare.
Per il confronto, supponiamo di addestrare un modello di classificazione multiclasse in modo che preveda un campo PlanType categorico (con quattro possibili risultati: 'Blue Plan', 'Green Plan', 'Purple Plan' e 'Red Plan'). In base al record di un singolo ID account riportato nella prima tabella, così è come apparirà il set di dati della coordinata SHAP per quel record:
AccountID | automl_feature | Predicted_class | SHAP_value |
---|---|---|---|
aa16889 | AdditionalFeatureSpend | Blue Plan | 0.004155414339679 |
aa16889 | AdditionalFeatureSpend | Green Plan | 0.0066376343942741 |
aa16889 | AdditionalFeatureSpend | Purple Plan | -0.014411468558894 |
aa16889 | AdditionalFeatureSpend | Red Plan | 0.003618419824941 |
aa16889 | BaseFee | Blue Plan | 0.089301017079318 |
aa16889 | BaseFee | Green Plan | 0.28876498452748 |
aa16889 | BaseFee | Purple Plan | 0.055689421438434 |
aa16889 | BaseFee | Red Plan | -0.43375542304524 |
aa16889 | CurrentPeriodUsage | Blue Plan | -0.0040098954629816 |
aa16889 | CurrentPeriodUsage | Green Plan | -0.27902537442842 |
aa16889 | CurrentPeriodUsage | Purple Plan | -0.21871561841248 |
aa16889 | CurrentPeriodUsage | Red Plan | 0.50175088830388 |
aa16889 | HasRenewed | Blue Plan | -0.011878031228962 |
aa16889 | HasRenewed | Green Plan | 0.036835618725654 |
aa16889 | HasRenewed | Purple Plan | 0.13798314881109 |
aa16889 | HasRenewed | Red Plan | -0.16294073630778 |
aa16889 | NumberOfPenalties | Blue Plan | 0.20519095034486 |
aa16889 | NumberOfPenalties | Green Plan | 0.0015682625647107 |
aa16889 | NumberOfPenalties | Purple Plan | -0.084355421853302 |
aa16889 | NumberOfPenalties | Red Plan | -0.12240379105627 |
Nella tabella riportata sopra, l'ID di un singolo account viene rappresentato con 20 righe separate: una riga per ogni funzione, con una riga per il valore SHAP corrispondente a ogni possibile risultato nella destinazione. La colonna Predicted_class rappresenta il risultato possibile (classe) da prevedere, non necessariamente il risultato previsto effettivo visualizzato nel set di dati di previsione. In ultima analisi, la classe con il valore SHAP maggiore diventa il valore previsto per il record.
I valori SHAP in questa tabella misurano l'influenza che la funzione specificata (automl_feature) ha sull'obiettivo che può essere la classe specificata (Predicted_class). Un valore positivo elevato indica che la funzione influisce fortemente sul risultato previsto in modo che appartenga classe specificata, mentre un valore negativo elevato indica che la funzione influisce fortemente sul risultato previsto affinché non sia della classe specificata.
Modelli di regressione
In un set di dati SHAP generato da un modello di regressione, la direzione dei valori SHAP è molto più facile da interpretare.
Un valore SHAP positivo corrisponde a un aumento del valore previsto per la riga.
Un valore SHAP negativo corrisponde a una diminuzione del valore previsto per la riga.
Calcolo di valori SHAP
I valori SHAP vengono calcolati per una vasta serie di algoritmi. L'importanza SHAP è calcolata con due metodi distinti:
Tree SHAP: un metodo veloce e preciso per stimare i valori SHAP per i modelli ad albero.
Linear SHAP: un metodo per calcolare i valori SHAP per i modelli lineari.
Algoritmo | Tipi di modelli supportati | Metodo di calcolo SHAP |
---|---|---|
Classificazione Random Forest | Classificazione binaria, classificazione multiclasse | Tree SHAP |
Classificazione XGBoost | Classificazione binaria, classificazione multiclasse | Tree SHAP |
Classificazione LightGBM | Classificazione binaria, classificazione multiclasse | Tree SHAP |
Classificazione CatBoost | Classificazione binaria, classificazione multiclasse | Tree SHAP |
Regressione logistica | Classificazione binaria, classificazione multiclasse | Linear SHAP |
Regressione LASSO | Classificazione binaria, classificazione multiclasse | Linear SHAP |
Regressione Elastic Net | Classificazione binaria, classificazione multiclasse | Linear SHAP |
Bayesiano ingenuo gaussiano | Classificazione binaria, classificazione multiclasse | SHAP non calcolato |
Regressione CatBoost | Regressione | Tree SHAP |
Regressione LightGBM | Regressione | Tree SHAP |
Regressione lineare | Regressione | Linear SHAP |
Regressione Random Forest | Regressione | Tree SHAP |
Regressione SGD | Regressione | Linear SHAP |
Regressione XGBoost | Regressione | Tree SHAP |