FeatureElimination.__init__

FeatureElimination.__init__(db, target_col, model, grid, feat_to_check=None, sample_col=None, sample_train_value=None, algo_type='auto', cv_funct=<class 'sklearn.model_selection._search.RandomizedSearchCV'>, cv_scoring='auto', n_iter=20, manage_groups=False, groups=None, cv_type=StratifiedKFold(n_splits=5, random_state=42, shuffle=True), use_ohe=False, step_size=0.1, min_n_feat_step=5, final_n_feature=1, verbose=True, write_final=False, write_substep=False, dim_cat_threshold=10)

Inizializza l’istanza di FeatureElimination.

Questo costruttore imposta tutti i parametri necessari per eseguire l’analisi di eliminazione delle feature. Valida gli input, determina automaticamente il tipo di problema di machine learning (se non specificato) e prepara gli attributi della classe.

Parameters:
  • db (pd.DataFrame) – DataFrame da analizzare.

  • target_col (str) – Nome della colonna target.

  • model (object) – Istanza di un classificatore o regressore.

  • grid (dict) – Griglia degli iperparametri.

  • feat_to_check (list, optional) – Lista delle feature da analizzare. Se None, vengono utilizzate tutte le colonne tranne target_col e sample_col. Default: None.

  • sample_col (str, optional) – Nome della colonna che indica se i campioni appartengono a ‘train’ o ‘test’. Default: None.

  • sample_train_value (str, optional) – Valore nella sample_col che identifica il set di training. Richiesto se sample_col è specificato. Default: None.

  • algo_type (str, optional) – Tipo di problema: “auto”, “classification”, “multiclass”, “regression”. Se “auto”, viene dedotto dalla cardinalità della colonna target. Default: “auto”.

  • cv_funct (class, optional) – Classe per la ricerca degli iperparametri in cross-validation (es. RandomizedSearchCV, GridSearchCV). Default: RandomizedSearchCV.

  • cv_scoring (str, optional) – Metrica di scoring da usare nella cross-validation. Se “auto”, seleziona “roc_auc” per classificazione binaria, “r2” per regressione e “balanced_accuracy” per multiclasse. Default: “auto”.

  • n_iter (int, optional) – Numero di iterazioni (combinazioni di iperparametri) da testare nella ricerca degli iperparametri. Default: 20.

  • manage_groups (bool, optional) – Se True, indica che la cross-validation deve mantenere uniti i gruppi definiti nel parametro groups. Default: False.

  • groups (pd.Series, optional) – Series con indice allineato al parametro db, contenente gli identificatori dei gruppi per la cross-validation (usato se manage_groups è True). Default: None.

  • cv_type (class, optional) – Classe splitter per definire i fold della cross-validation (es. StratifiedKFold, GroupKFold). Default: StratifiedKFold(5, random_state=42, shuffle=True).

  • use_ohe (bool, optional) – Se True, applica One-Hot Encoding alle feature identificate come categoriche prima di passare i dati al modello. Default: False.

  • step_size (int/float, optional) – Numero o frazione di feature da rimuovere ad ogni passo dell’RFE. Default: 0.1 (10%).

  • min_n_feat_step (int, optional) – Numero minimo di feature da rimuovere ad ogni passo, anche se step_size (come frazione) risulta in un numero minore. Default: 5.

  • final_n_feature (int, optional) – Numero minimo di feature a cui fermare il processo RFE. Default: 1.

  • verbose (bool, optional) – Se True, stampa informazioni sull’avanzamento del processo. Default a True.

  • write_final (bool, optional) – Se True, salva il report finale (DataFrame) in un file CSV nella directory corrente. Default: False.

  • write_substep (bool, optional) – Se True, salva un report intermedio dopo ogni passo di eliminazione SHAP RFE in file CSV. Default: False.

  • dim_cat_threshold (int, optional) – Soglia di cardinalità per le feature categoriche. 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. Default: 10.

Note

Se algo_type è ‘auto’ per l’approccio supervisionato, questo verrà determinato in base al numero di valori unici nel target:

<=2 -> ‘classification’ (Classificazione Binaria)

<11 -> ‘multiclass’ (Classificazione Multiclasse)

>=11 -> ‘regression’ (Regressione)