XAI.__init__¶
- XAI.__init__(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)¶
Inizializza l’oggetto XAI configurando il modello e le opzioni di addestramento/interpretazione.
Imposta i parametri per definire l’approccio (supervisionato/non supervisionato), il tipo di modello da usare (default LGBM o custom), se usare la cross-validation per l’ottimizzazione degli iperparametri, e come gestire le feature categoriche.
- Parameters:
approach_type (str) –
Tipo di approccio per l’analisi della spiegabilità del modello. Può essere:
”supervised” (default): Approccio supervisionato.
”unsupervised”: Approccio non supervisionato, generalmente utilizzato per il clustering.
Default: ‘supervised’
model_input (str, optional) –
Specifica l’origine del modello:
’default’: Utilizza un modello LightGBM interno (LGBMClassifier o LGBMRegressor in base a algo_type).
’custom’: Utilizza il modello fornito nell’argomento model.
Default: ‘default’.
model (object/None, optional) – Un modello (classificatore o regressore). Utilizzato solo se model_input=’custom’. Default: None.
use_cv (bool, optional) – Se True, esegue la cross-validation (usando cv_funct, grid, cv_scoring, n_iter, cv_type) durante il metodo fit per ottimizzare gli iperparametri del modello. Default: False.
grid (dict/None, optional) – Dizionario della griglia degli iperparametri per la ricerca CV (es. per RandomizedSearchCV). Se None e si usa CV con model_input=’default’, viene usata una griglia predefinita per LGBM. Default: None.
cv_funct (class, optional) – La classe per la ricerca dei parametri tramite CV (es. RandomizedSearchCV, GridSearchCV). Default: RandomizedSearchCV.
cv_scoring (str, optional) –
La metrica di scoring da ottimizzare durante la CV. Se ‘auto’, seleziona automaticamente:
’roc_auc’ per algo_type=’classification’ (o clustering binario).
’r2’ per algo_type=’regression’.
’balanced_accuracy’ per algo_type=’multiclass’ (o clustering multiclasse).
Default: ‘auto’.
n_iter (int, optional) – Numero di combinazioni di iperparametri da provare nella ricerca di essi. Default: 40.
cv_type (object, optional) – Un oggetto splitter per definire le suddivisioni della CV (es. StratifiedKFold, KFold, GroupKFold). Default: StratifiedKFold(5, random_state=42, shuffle=True).
algo_type (str, optional) –
Il tipo di problema ML. Opzioni: ‘classification’, ‘multiclass’, ‘regression’, ‘clustering’, ‘auto’.
Se ‘auto’ (per approach_type=’supervised’), il tipo viene determinato in fit in base al numero di valori unici in output_model.
Deve essere ‘clustering’ per approach_type=’unsupervised’.
Default: ‘auto’.
dim_cat_threshold (int/None, optional) – Soglia di cardinalità per le feature categoriche quando model_input=’custom’. Se una feature categorica ha più valori unici di questa soglia, solo le top dim_cat_threshold categorie più frequenti vengono codificate con One-Hot Encoding (le altre vengono ignorate). Se None, viene applicato One-Hot Encoding standard a tutte le categorie. Ignorato se model_input=’default’. Default: None.
Note
Il modello ‘default’ è LightGBM, che gestisce internamente le feature categoriche.
Per model_input=’custom’, le feature categoriche vengono gestite tramite One-Hot Encoding (standard o Top-N basato su dim_cat_threshold) nel metodo fit.
La configurazione della CV (Cross-Validation) viene utilizzata solo se use_cv=True.