XAI.fit¶
- XAI.fit(db, output_model, manage_groups=False, groups=None, standardize=False)¶
Addestra il modello utilizzando i dati forniti e i parametri configurati nella classe.
Questo metodo gestisce il processo di addestramento:
Convalida i dati di input (db, output_model).
Se algo_type è ‘auto’ per l’approccio supervisionato, verrà determinato in base al numero di valori unici di output_model:
<=2 -> ‘classification’ (Classificazione Binaria)
<11 -> ‘multiclass’ (Classificazione Multiclasse)
>=11 -> ‘regression’ (Regressione)
Seleziona il modello base (LGBM default o custom).
Se use_cv=True, imposta l’oggetto di ricerca degli iperparametri tramite CV (es. RandomizedSearchCV).
Se standardize=True, applica uno Standard Scaler ai dati di input.
Gestisce le feature categoriche:
Per model_input=’default’ (LGBM): Converte le colonne ‘object’ in ‘category’ (le colonne ‘category’ vengono gestite dalla libreria LGBM).
Per model_input=’custom’: Applica One-Hot Encoding (standard o Top-N basato sull’attributo dim_cat_threshold). I dati trasformati vengono salvati nell’attributo db_tsf.
Configura lo splitter CV per gestire i gruppi, se manage_groups=True.
Addestra il modello (attributo model o l’oggetto CV) utilizzando gli attributi db_tsf (o db se non trasformato) e output_model.
Se è stata usata la CV, estrae i migliori parametri.
Salva il modello finale addestrato nell’attributo model_fitted.
- Parameters:
db (pd.DataFrame) – Il DataFrame contenente le feature di input per l’addestramento.
output_model (pd.Series/np.array) – La variabile target (per approccio supervisionato) o le etichette di cluster (per approccio non supervisionato). Deve avere la stessa lunghezza (numero di righe) di db.
manage_groups (bool, optional) – Se True, indica che la CV deve tenere conto dei gruppi specificati nell’argomento groups per evitare che campioni dello stesso gruppo finiscano in fold diversi. Richiede l’uso di splitter CV compatibili come GroupKFold o StratifiedGroupKFold. Default: False.
groups (pd.Series/None, optional) – Una Serie pandas con lo stesso indice di db, contenente l’identificativo del gruppo per ciascun campione. Richiesto e utilizzato solo se manage_groups=True. Default: None.
standardize (bool, optional) – Se True, applica un metodo di scaling (StandardScaler) ai dati di input. Default: False.
Note
Per approach_type=’unsupervised’, output_model rappresenta le etichette di cluster. Il modello addestrato (model_fitted) sarà un classificatore (LGBM default o custom) che impara a predire queste etichette dalle feature in db.
La gestione delle feature categoriche avviene così: LGBM le gestisce nativamente se sono di tipo ‘category’, mentre per altri modelli è necessario il OHE (One-Hot Encoding).
Il DataFrame effettivamente utilizzato per l’addestramento (potenzialmente dopo OHE) è memorizzato in db_tsf.