FeatureSelection¶
- class cefeste.selection.FeatureSelection(db, feat_to_check=None, target_col=None, algo_type='auto', sample_col=None, sample_train_value=None, min_unique_val=3, max_pct_missing=0.9, max_pct_mfv=0.95, max_psi=0.2, psi_nbins=20, psi_bin_min_pct=0.02, explanatory_threshold=0.05, correlation_threshold=0.95, selection_rule='random', vif_threshold=5, collinear_optimize=False, return_selection_history=True, dim_cat_threshold=10, random_state=42, verbose=True)¶
Classe utilizzata per implementare tecniche di selezione delle feature.
Questa classe estende la classe FeatureAnalysis per fornire una pipeline configurabile per la selezione delle feature. Applica una serie di filtri univariati e multivariati per identificare e rimuovere le feature che non rispettano vari criteri di selezione.
- Filtri Applicati:
- Constant Features:
Identifica e rimuove le feature che presentano un unico valore costante in tutto il dataset (o nel set di training). Parametri rilevanti: Nessuno specifico, agisce sulla natura della feature.
- Missing Features:
Identifica e rimuove le feature che superano una soglia definita di valori mancanti. Parametri rilevanti: max_pct_missing (default 0.9).
- Highly Concentrated Features:
Identifica e rimuove le feature in cui un singolo valore (il più frequente) supera una certa percentuale del totale delle osservazioni. Parametri rilevanti: max_pct_mfv (default 0.95).
- Low Values Features:
Identifica e rimuove le feature che hanno un numero di valori unici inferiore a una soglia specificata. Utile per rimuovere feature quasi costanti o con cardinalità troppo bassa per essere informative. Parametri rilevanti: min_unique_val (default 3).
- Unstable Features (PSI):
Identifica e rimuove le feature la cui distribuzione cambia significativamente tra diversi campioni di dati (es. training vs. test, o periodi temporali diversi), utilizzando il Population Stability Index (PSI). Richiede la definizione di sample_col. Parametri rilevanti: max_psi (default 0.2), psi_nbins (default 20), psi_bin_min_pct (default 0.02).
- Unexplanatory Features:
Identifica e rimuove le feature che mostrano un basso potere esplicativo nei confronti della variabile target. La metrica di valutazione dipende da algo_type (AUC per classificazione, R-squared per regressione). Richiede la definizione di target_col. Parametri rilevanti: explanatory_threshold (default 0.05), algo_type (default “auto”), dim_cat_threshold (default 10).
- Correlated Features:
Identifica e rimuove le feature che sono altamente correlate con altre feature. Tra una coppia di feature correlate, una viene rimossa in base a selection_rule (es. casualmente, o quella con potere esplicativo sul target minore). Parametri rilevanti: correlation_threshold (default 0.95), selection_rule (default “random”), random_state (default 42).
- Collinear Features (VIF):
Identifica e rimuove le feature numeriche che sono linearmente dipendenti da altre feature numeriche, utilizzando il Variance Inflation Factor (VIF). Aiuta a mitigare problemi di multicollinearità. Parametri rilevanti: vif_threshold (default 5), collinear_optimize (default False).
La classe tiene traccia delle feature rimosse e del motivo della rimozione, fornendo report dettagliati.
Methods
Inizializza l'oggetto FeatureSelection con dati e parametri di configurazione.
Genera un'analisi esplorativa dei dati (EDA) di base.
Esegue solo il filtro per le feature collineari (basato su VIF).
Esegue solo il filtro per le feature costanti.
Esegue solo il filtro per le feature altamente correlate.
Esegue solo il filtro per le feature altamente concentrate.
Esegue solo il filtro per le feature con un basso numero di valori unici.
Esegue solo il filtro per le feature con troppi valori mancanti.
Esegue solo il filtro per le feature non esplicative rispetto al target.
Esegue solo il filtro per le feature instabili (basato su PSI).
Restituisce il DataFrame originale contenente solo le feature inizialmente considerate.
Restituisce il DataFrame contenente solo le feature finali selezionate.
Restituisce il DataFrame originale senza le feature eliminate.
Restituisce il valore di uno o più attributi della classe.
Restituisce un DataFrame che riassume il funnel di selezione delle feature.
Genera un report completo che dettaglia lo stato di ogni feature.
Esegue la pipeline di selezione delle feature in base ai filtri e ai parametri configurati.
Imposta il valore di uno o più attributi della classe.