0Pricing
Learn AI with Python · Lezione

Metodi di selezione delle feature

Metodi filter (varianza, correlazione), wrapper (RFE) ed embedded (regolarizzazione L1).

Metodi di selezione delle feature è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.

Perché selezionare le feature

La selezione delle feature conserva solo le colonne più utili. Un numero minore di feature significa addestramento più rapido, minore overfitting e interpretazione più semplice. Rimuovere il rumore spesso migliora anche l'accuratezza.

Tre famiglie di metodi

I metodi di selezione si dividono in tre gruppi:

  • Filter: classificano le feature in base a una statistica (sono rapidi e indipendenti dal modello)
  • Wrapper: cercano sottoinsiemi addestrando modelli (sono lenti, ma accurati)
  • Embedded: la selezione avviene durante l'addestramento del modello

VarianceThreshold

Il filtro più semplice: VarianceThreshold elimina le feature la cui varianza è inferiore a una soglia. Le colonne quasi costanti non contengono informazioni.

from sklearn.feature_selection import VarianceThreshold

sel = VarianceThreshold(threshold=0.01)
X_reduced = sel.fit_transform(X)
print("Kept:", X_reduced.shape[1], "of", X.shape[1])

SelectKBest con f_classif

SelectKBest conserva le K feature con il punteggio più alto. Con f_classif utilizza un test F ANOVA, che misura quanto ogni feature sia correlata all'etichetta della classe.

from sklearn.feature_selection import SelectKBest, f_classif

sel = SelectKBest(score_func=f_classif, k=10)
X_best = sel.fit_transform(X, y)
print(sel.get_support(indices=True))

Informazione mutua

mutual_info_classif misura qualsiasi dipendenza, anche non lineare, tra una feature e il target. A differenza del test F, rileva le relazioni non lineari che l'ANOVA non riesce a cogliere.

from sklearn.feature_selection import SelectKBest, mutual_info_classif

sel = SelectKBest(score_func=mutual_info_classif, k=10)
X_mi = sel.fit_transform(X, y)

Confronto tra f_classif e mutual_info

f_classif è rapido e rileva le relazioni lineari; mutual_info_classif è più lento, ma rileva quelle non lineari. Se sospetta relazioni complesse, preferisca l'informazione mutua.

import numpy as np
from sklearn.feature_selection import f_classif, mutual_info_classif

f_scores, _ = f_classif(X, y)
mi_scores = mutual_info_classif(X, y)
print("F-test top:", np.argsort(f_scores)[::-1][:5])
print("MI top:", np.argsort(mi_scores)[::-1][:5])

Eliminazione ricorsiva delle feature

RFE è un metodo wrapper: addestra un modello, rimuove la feature più debole e ripete il processo. Utilizza il segnale di importanza del modello per classificare le feature.

from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression

rfe = RFE(estimator=LogisticRegression(max_iter=1000), n_features_to_select=10)
rfe.fit(X, y)
print(rfe.support_)

RFECV: scegliere automaticamente il numero

RFECV aggiunge la convalida incrociata a RFE, così trova il numero ottimale di feature in base al punteggio di convalida, anziché a una stima fissa.

from sklearn.feature_selection import RFECV
from sklearn.ensemble import RandomForestClassifier

rfecv = RFECV(
    estimator=RandomForestClassifier(),
    cv=5,
    scoring="accuracy",
)
rfecv.fit(X, y)
print("Optimal features:", rfecv.n_features_)

SelectFromModel con Lasso

Selezione embedded: Lasso (L1) riduce i coefficienti non importanti esattamente a zero. SelectFromModel conserva quindi solo quelli diversi da zero.

from sklearn.feature_selection import SelectFromModel
from sklearn.linear_model import Lasso

sel = SelectFromModel(Lasso(alpha=0.01))
sel.fit(X, y)
X_lasso = sel.transform(X)
print("Kept:", X_lasso.shape[1])

SelectFromModel con le importanze degli alberi

SelectFromModel funziona anche con qualsiasi estimator che esponga feature_importances_, come le random forest. Imposti una threshold come "mean" o "median".

from sklearn.feature_selection import SelectFromModel
from sklearn.ensemble import RandomForestClassifier

sel = SelectFromModel(
    RandomForestClassifier(n_estimators=200),
    threshold="median",
)
sel.fit(X, y)

Scegliere un metodo

Inizi con filtri poco costosi (VarianceThreshold, SelectKBest) per eliminare il rumore più evidente. Utilizzi SelectFromModel embedded per ottenere un buon compromesso. Riservi RFECV ai casi in cui l'accuratezza è la priorità e le risorse di calcolo lo consentono.

Verifica rapida

Verifichi le Sue conoscenze sulla selezione delle feature.

Riepilogo

Riepilogo: la selezione delle feature comprende metodi filter (VarianceThreshold, SelectKBest con f_classif o mutual_info_classif), wrapper (RFECV) ed embedded (SelectFromModel con Lasso o con le importanze degli alberi). I filtri sono i più rapidi; RFECV è il più accurato. Utilizzi l'informazione mutua per le relazioni non lineari.

Domande Frequenti

La lezione «Metodi di selezione delle feature» è gratuita?

Sì — il testo completo di «Metodi di selezione delle feature» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.

Cosa imparerò in «Metodi di selezione delle feature»?

Metodi filter (varianza, correlazione), wrapper (RFE) ed embedded (regolarizzazione L1). Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Learn AI with Python?

Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Metodi di selezione delle feature»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?

Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Metodi di selezione delle feature
  2. Creazione di feature di interazione e polinomiali
  3. Target encoding e gestione avanzata delle variabili categoriche
  4. Ingegneria automatizzata delle feature con Featuretools
← Torna a Learn AI with Python