FeatureSelection.__init__

FeatureSelection.__init__(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)

Inizializza l’oggetto FeatureSelection con dati e parametri di configurazione.

Questo costruttore imposta il DataFrame da analizzare, le feature da considerare, la colonna target (se presente), la colonna per la suddivisione in campioni (es. train/test), il tipo di algoritmo di machine learning (per guidare alcune selezioni) e varie soglie e parametri per i diversi passaggi di filtraggio delle feature. Inizializza anche attributi interni per memorizzare i risultati di ogni fase di selezione e lo stato generale.

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

  • 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.

  • target_col (str, optional) – Nome della colonna target. Necessario per i filtri basati sul potere esplicativo. Default: None.

  • algo_type (str, optional) – Tipo di algoritmo di machine learning. Può essere ‘auto’, ‘regression’, ‘classification’, ‘multiclass’, ‘unsupervised’. Se ‘auto’ e target_col è specificato, il tipo viene calcolato in base al numero di valori unici del target. Default: “auto”.

  • sample_col (str, optional) – Nome della colonna che indica se i campioni appartengono a ‘train’ o ‘test’. Usato per l’analisi di stabilità (PSI) e per applicare alcuni filtri solo sul campione di training. Default: None.

  • sample_train_value (str, optional) – Valore nella sample_col che identifica il set di training. Necessario se sample_col è specificato e si desidera applicare filtri specifici al training set. Default: None.

  • min_unique_val (int, optional) – Numero minimo di valori unici che una feature deve avere per non essere considerata “low_values”. Default: 3.

  • max_pct_missing (float, optional) – Percentuale massima di valori mancanti tollerata in una feature. Default: 0.9.

  • max_pct_mfv (float, optional) – Percentuale massima della frequenza tollerata dei valori di una feature. Default: 0.95.

  • max_psi (float, optional) – Valore massimo di Population Stability Index (PSI) tollerato tra le distribuzioni del training con il test. Default: 0.2.

  • psi_nbins (int, optional) – Numero di bin da utilizzare per il calcolo del PSI. Default: 20.

  • psi_bin_min_pct (float, optional) – Percentuale minima di osservazioni per bin nel calcolo del PSI. Default: 0.02.

  • explanatory_threshold (float, optional) – Soglia per il potere esplicativo. Feature con performance (es. AUC, R-squared) inferiori a questa soglia rispetto al target vengono rimosse. Default: 0.05.

  • correlation_threshold (float, optional) – Soglia di correlazione. Feature con correlazione (assoluta) superiore a questa soglia vengono considerate per la rimozione. Default: 0.95.

  • selection_rule (str, optional) – Regola per decidere quale feature rimuovere tra una coppia di feature altamente correlate. Può essere ‘random’ o ‘univ_perf’, ovvero basata sul potere esplicativo rispetto alla variabile target. Default: “random”.

  • vif_threshold (int, optional) – Soglia per il Variance Inflation Factor (VIF). Feature numeriche con VIF superiore a questa soglia vengono considerate per la rimozione a causa della multicollinearità. Default: 5.

  • collinear_optimize (bool, optional) – Se True, tenta di ottimizzare la rimozione delle feature collineari basandosi sulla loro correlazione media o potere esplicativo rispetto alla variabile target. Default: False.

  • return_selection_history (bool, optional) – Se True, memorizza e restituisce la storia dettagliata della selezione delle feature correlate. Default: True.

  • 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.

  • verbose (bool, optional) – Se True, stampa informazioni aggiuntive durante l’esecuzione dei filtri. Default: True.

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)