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.