XAI¶
- class model_monitoring.XAI.XAI(approach_type='supervised', model_input='default', model=None, use_cv=False, grid=None, cv_funct=<class 'sklearn.model_selection._search.RandomizedSearchCV'>, cv_scoring='auto', n_iter=40, cv_type=StratifiedKFold(n_splits=5, random_state=42, shuffle=True), algo_type='auto', dim_cat_threshold=None)¶
Classe per l’interpretabilità dei modelli di Machine Learning.
Questa classe facilita la comprensione del comportamento dei modelli di ML, principalmente attraverso il calcolo e l’analisi dell’importanza delle feature. Permette di addestrare un modello interno (LightGBM per default) o di utilizzare un modello custom. L’obbiettivo è quello di approssimare i risultati del modello originale con un altro modello addestrandolo (overfittando) sui dati originali come feature e le predizioni fatte dal modello originale come target.
Supporta diversi metodi per calcolare l’importanza delle feature:
Valori SHAP (SHapley Additive exPlanations):
Attribuisce a ciascuna feature il cambiamento nel valore atteso della predizione del modello, basandosi su principi della teoria dei giochi (valori di Shapley) per garantire equità e consistenza. Possono essere calcolati per modelli ad albero, per modelli generici, o per reti neurali.
Permutation Importance:
Misura l’importanza di una feature calcolando il calo di performance del modello (su un set di dati) quando i valori di quella specifica feature vengono mescolati casualmente (permutati), rompendo così la relazione tra la feature e il target.
Gini Importance (per modelli ad albero):
Specifica per modelli basati su alberi decisionali, quantifica quanto mediamente una feature contribuisce a ridurre l’impurità (es. Gini impurity o entropia) nei nodi degli alberi in cui viene utilizzata per lo split.
Coefficienti del modello (per modelli lineari):
Nei modelli lineari (come Regressione Lineare/Logistica), il coefficiente mostra l’impatto di una feature: indica di quanto varia la previsione del modello per ogni aumento di 1 unità della feature, se tutte le altre restano uguali. La grandezza del coefficiente (senza considerare il segno) misura quanto è forte questa influenza.
La classe gestisce anche la preparazione dei dati, inclusa la codifica One-Hot delle variabili categoriche e l’ottimizzazione degli iperparametri tramite cross-validation.
Note
Il flusso tipico è: inizializzare XAI, chiamare fit, chiamare get_feature_importance, e poi get_report, get_score, o plot.
Per l’approccio ‘unsupervised’ (clustering), viene addestrato un modello classificatore ausiliario per predire le etichette di cluster fornite.
Methods
Inizializza l'oggetto XAI configurando il modello e le opzioni di addestramento/interpretazione.
Addestra il modello utilizzando i dati forniti e i parametri configurati nella classe.
Calcola e restituisce l'importanza delle feature del modello addestrato.
Restituisce il report dell'importanza delle feature come DataFrame pandas.
Calcola e restituisce uno score di performance del modello sui dati di addestramento.
Genera e visualizza un grafico a barre orizzontali dell'importanza delle feature.