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)