Esercizio - XAI su cardiopatia e calcolo a mano di permutation importance, PDP e Shapley
Questa pagina non ha ancora la versione ripasso: qui sotto c'è il testo completo.
In questa pagina 5
Testo. Parte A: tre piccoli calcoli a mano. Parte B: lettura del laboratorio sulla cardiopatia (dataset Heart, target AHD).
A1. Sei campioni con etichette vere . Un modello dà le predizioni originali . Mescolando la feature le predizioni diventano ; mescolando diventano . Si calcoli la permutation importance di e .
A2. Modello e dati con . Si calcolino le curve ICE e il PDP di per e .
A3. , riferimento , istanza . Si calcolino i valori di Shapley.
B. Nel laboratorio: (i) perché una regressione logistica su feature non normalizzate non permette di confrontare i coefficienti; (ii) cosa mostra il percorso del LASSO al crescere di ; (iii) come si costruiscono ICE e PDP per una random forest; (iv) come leggere SHAP.
Teoria usata: Explainable AI (XAI)approfondimento: non nel programma di Telecomunicazioni. L'interpretabilità è l'arte di produrre descrizioni di un modello abbastanza semplici da essere capite da un umano; la spiegabilità aggiunge la completezza (permettere di anticipare la previsione). I metodi si classificano in intrinseci o post-hoc, agnostici o specifici del modello, globali o locali. Modelli intrinsecamente interpretabili: regressione lineare (pesi $\beta_j$, intervalli di confidenza, LASSO per la sparsità), regressione logistica ($\log\frac y{1-y}=\beta_0+\sum\beta_jx_j$), alberi. Importanza nelle foreste: MDI $=\sum_{\text{nodi}}\frac{n_p}{n_{TOT}}\Delta Gini$ (con feature selection bias). Metodi agnostici: permutation importance (aumento dell'errore dopo aver mescolato una feature), PDP $\hat f_S(x_S)=\frac1n\sum_if(x_S,x_C^{(i)})$ (media delle curve ICE), LIME (modello semplice locale pesato sui punti perturbati), SHAP (valori di Shapley: media dei contributi marginali su tutti gli ordini, somma $=f(x)-f(\text{base})$). Per le reti profonde: mappe di salienza, Grad-CAM, occlusione. Valutazione: livello applicativo, umano, funzionale. Lab: cardiopatia AHD con logistica, LASSO, random forest, ICE, PDP, SHAP.Explainable AI (XAI) →, Regressione logistica e softmaxLa regressione lineare non è adatta alla classificazione (valori fuori da [0,1], retta tirata dai punti lontani). La regressione logistica passa il predittore lineare dalla sigmoide $\sigma(z)=1/(1+e^{-z})$ e interpreta $\hat y=\sigma(x^T\beta)$ come $P(y=1\mid x)$: si predice la classe 1 se $\hat y\ge0{,}5$, cioè $x^T\beta\ge0$ (bordo lineare). L'errore quadratico dà una funzione non convessa; si usa la log-verosimiglianza negativa $-\sum[y\log\hat y+(1-y)\log(1-\hat y)]$, convessa, con gradiente $X^T(\hat y-y)$ e nessuna formula chiusa (discesa del gradiente). Per più classi: one-vs-one ($C(C-1)/2$ classificatori, voto), one-vs-all ($C$ classificatori, massima probabilità), o la softmax $p_c=e^{z_c}/\sum_ke^{z_k}$ con cross-entropia. Si può regolarizzare (ridge, LASSO, Elastic Net) e la cross-validation si fa stratificata. Approfondimento: non nel programma di Telecomunicazioni.Regressione logistica e softmax →, LASSO e discesa del gradienteIl LASSO è la regressione regolarizzata con penalità $L_1$: minimizza $\sum_i(y_i-x_i^T\beta)^2+\lambda\sum_{j\ge1}|\beta_j|$. A differenza della ridge, porta alcuni coefficienti esattamente a zero (soluzione sparsa, selezione delle feature): geometricamente le curve di livello dell'errore toccano il vincolo $\sum|\beta_j|\le s$ (un rombo) in uno spigolo. Non ha formula chiusa, quindi si minimizza con la discesa del gradiente $W\leftarrow W-\eta,\nabla J(W)$, usando il subgradiente $\operatorname{sign}(\beta_j)$ per il valore assoluto (nel punto 0 qualunque valore in $[-1,1]$). Il passo $\eta$ è critico: per l'errore quadratico converge se $\eta<1/\mu_{\max}(X^TX)$; si può usare $\eta_t=\eta_0/(1+\gamma t)$. L'Elastic Net combina le penalità $L_1$ e $L_2$ con $\lambda_1=\alpha\lambda$, $\lambda_2=(1-\alpha)\lambda$.LASSO e discesa del gradiente →, Calcolo combinatorio per la probabilitàNegli spazi uniformi bisogna contare: principio di moltiplicazione, disposizioni con ripetizione n^k, disposizioni semplici n!/(n−k)!, permutazioni n!, combinazioni (n su k); estrazioni con e senza reinserimento e distribuzione ipergeometrica.Calcolo combinatorio per la probabilità →.
A1. Permutation importance
Errore originale: le predizioni confrontate con differiscono solo in posizione : errore .
Mescolando : predizioni contro : errori in posizione ( contro ), ( contro ), ( contro ): .
Mescolando : contro : errori in posizione e : .
Importanza = aumento dell'errore: : punti; : punti. è la più importante: rompere il suo legame con il target peggiora di più il modello. (Con una sola permutazione il risultato è rumoroso: si ripete molte volte e si fa la media.)
A2. ICE e PDP
Le tre ICE sono le funzioni di con fissato al valore di ciascun campione: .
| ICE campione con | ||
| ICE campione con | ||
| ICE campione con | ||
| PDP (media) |
Formula: , che dà e ✓. Le tre curve hanno pendenze , , (l'effetto di cresce con : interazione); il PDP ha pendenza e nasconde l'eterogeneità. Per questo si guardano le ICE insieme al PDP.
A3. Valori di Shapley
Con la previsione con le feature di ai valori dell'istanza e le altre al riferimento: ; ; ; .
Con due feature gli ordinamenti sono e , ciascuno con peso :
- ;
- .
Verifica dell'efficienza: ✓. L'interazione è divisa a metà: a ciascuna (infatti e ).
B. Il laboratorio
(i) Scala dei coefficienti. Nella logistica . Se si moltiplica una feature per , il suo coefficiente si divide per e le previsioni non cambiano: il valore di dipende dalle unità di misura. Per questo nel lab le feature sono normalizzate con min-max usando minimo e massimo del training (poi applicati al test) prima di confrontare . Risultati: accuratezza di training , di test .
(ii) LASSO. Si addestra una regressione con penalità per valori di tra e e si disegnano i coefficienti. Al crescere di i pesi si riducono e si azzerano uno dopo l'altro; le ultime feature a restare sono ChestPain_asymptomatic, Ca_0.0 e Thal_normal: le più importanti per quel modello. L'ordine di importanza cambia con .
(iii) ICE e PDP per una random forest (max_depth=5): per un campione si fa variare una feature in valori tra e (i dati sono normalizzati) lasciando fissi gli altri e si registra predict_proba(...)[0, 1]: è una ICE. Ripetuta per ogni campione di test e mediata, dà il PDP. Per due feature (età e frequenza massima) si usa una griglia e un grafico a contorni per la previsione di un campione.
(iv) SHAP. explainer = shap.Explainer(clf, X_train, feature_names=...): il training fa da dataset di sfondo per il valore di riferimento. explainer(X_train) dà i valori SHAP globali, shap.summary_plot mostra importanza e verso dell'effetto; per i campioni di test shap.waterfall_plot mostra, per una previsione, come ciascuna feature la sposta dal valore atteso a quello finale. Si usano i valori della classe : l'altra classe ha valori opposti (probabilità che sommano ).
Codice
def ice(model, sample, idx, grid=np.linspace(0, 1, 100)):
out = []
for v in grid:
s = sample.copy(); s[0, idx] = v # cambia solo la feature idx
out.append(model.predict_proba(s)[0, 1])
return grid, out
curve = [ice(clf, X_test[i:i+1], idx_age)[1] for i in range(len(X_test))]
pdp = np.mean(curve, axis=0) # PDP = media delle ICE