Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Basi della Selezione delle Caratteristiche | Ingegneria delle Caratteristiche per l'Apprendimento Automatico
Preprocessing dei Dati e Feature Engineering

bookBasi della Selezione delle Caratteristiche

La selezione delle caratteristiche migliora le prestazioni del modello mantenendo solo le caratteristiche più rilevanti, riducendo la complessità e contribuendo a prevenire l'overfitting causato da dati irrilevanti o ridondanti.

Note
Definizione

Selezione delle caratteristiche è il processo di scelta di un sottoinsieme di variabili di input (features) dai dati che sono più rilevanti per il problema di modellazione predittiva.

I metodi di selezione delle caratteristiche includono la revisione manuale e tecniche automatizzate. Nei compiti di classificazione, si utilizzano test statistici per valutare le caratteristiche e selezionare quelle più fortemente correlate alla variabile target.

I metodi di selezione delle caratteristiche più diffusi rientrano in tre categorie:

  • Metodi filtro: selezionano le caratteristiche in base a misure statistiche, come coefficienti di correlazione o test univariati, indipendentemente da qualsiasi modello di machine learning;
  • Metodi wrapper: utilizzano un modello predittivo per valutare diverse combinazioni di caratteristiche, come nell'eliminazione ricorsiva delle caratteristiche (RFE), e selezionano il sottoinsieme che offre le migliori prestazioni del modello;
  • Metodi embedded: eseguono la selezione delle caratteristiche come parte del processo di addestramento del modello, come la regolarizzazione Lasso, che rimuove automaticamente le caratteristiche meno importanti riducendo i loro coefficienti a zero.

Ogni metodo bilancia compromessi tra costo computazionale, interpretabilità e potere predittivo.

1234567891011121314151617181920212223242526
import pandas as pd import seaborn as sns from sklearn.feature_selection import SelectKBest, f_classif from sklearn.preprocessing import LabelEncoder # Load Titanic dataset train = sns.load_dataset('titanic') # Select numeric and categorical columns (excluding target) features = ['pclass', 'sex', 'age', 'sibsp', 'parch', 'fare', 'embarked'] X = train[features].copy() y = train['survived'] # Encode categorical features X['sex'] = LabelEncoder().fit_transform(X['sex'].astype(str)) X['embarked'] = LabelEncoder().fit_transform(X['embarked'].astype(str)) # Handle missing values by filling with median (for simplicity) X = X.fillna(X.median(numeric_only=True)) # Select top 5 features based on ANOVA F-value selector = SelectKBest(score_func=f_classif, k=5) X_new = selector.fit_transform(X, y) selected_features = X.columns[selector.get_support()] print("Selected features:", list(selected_features))
copy

In questo esempio, viene utilizzato SelectKBest dalla libreria scikit-learn con la funzione di punteggio f_classif per selezionare le cinque caratteristiche più rilevanti—pclass, sex, parch, fare ed embarked—dal dataset Titanic. Questo metodo valuta ciascuna caratteristica individualmente utilizzando i valori F di ANOVA e seleziona quelle con i punteggi più alti. È efficace per i compiti di classificazione poiché si concentra sulle caratteristiche che meglio separano le classi target.

Note
Nota

La selezione di troppe caratteristiche, specialmente quelle irrilevanti, può portare a overfitting, dove il modello ottiene buoni risultati sui dati di addestramento ma scarsi su nuovi dati non visti. Una selezione accurata delle caratteristiche aiuta a ridurre questo rischio e porta a modelli più robusti.

La selezione delle caratteristiche non serve solo a migliorare l'accuratezza—rende anche i modelli più veloci e più facili da interpretare. Concentrandosi solo sulle caratteristiche più importanti, si semplificano i modelli e si riduce la possibilità di apprendere rumore dai dati.

question mark

Quale delle seguenti affermazioni sulla selezione delle caratteristiche è vera?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 1

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 8.33

bookBasi della Selezione delle Caratteristiche

Scorri per mostrare il menu

La selezione delle caratteristiche migliora le prestazioni del modello mantenendo solo le caratteristiche più rilevanti, riducendo la complessità e contribuendo a prevenire l'overfitting causato da dati irrilevanti o ridondanti.

Note
Definizione

Selezione delle caratteristiche è il processo di scelta di un sottoinsieme di variabili di input (features) dai dati che sono più rilevanti per il problema di modellazione predittiva.

I metodi di selezione delle caratteristiche includono la revisione manuale e tecniche automatizzate. Nei compiti di classificazione, si utilizzano test statistici per valutare le caratteristiche e selezionare quelle più fortemente correlate alla variabile target.

I metodi di selezione delle caratteristiche più diffusi rientrano in tre categorie:

  • Metodi filtro: selezionano le caratteristiche in base a misure statistiche, come coefficienti di correlazione o test univariati, indipendentemente da qualsiasi modello di machine learning;
  • Metodi wrapper: utilizzano un modello predittivo per valutare diverse combinazioni di caratteristiche, come nell'eliminazione ricorsiva delle caratteristiche (RFE), e selezionano il sottoinsieme che offre le migliori prestazioni del modello;
  • Metodi embedded: eseguono la selezione delle caratteristiche come parte del processo di addestramento del modello, come la regolarizzazione Lasso, che rimuove automaticamente le caratteristiche meno importanti riducendo i loro coefficienti a zero.

Ogni metodo bilancia compromessi tra costo computazionale, interpretabilità e potere predittivo.

1234567891011121314151617181920212223242526
import pandas as pd import seaborn as sns from sklearn.feature_selection import SelectKBest, f_classif from sklearn.preprocessing import LabelEncoder # Load Titanic dataset train = sns.load_dataset('titanic') # Select numeric and categorical columns (excluding target) features = ['pclass', 'sex', 'age', 'sibsp', 'parch', 'fare', 'embarked'] X = train[features].copy() y = train['survived'] # Encode categorical features X['sex'] = LabelEncoder().fit_transform(X['sex'].astype(str)) X['embarked'] = LabelEncoder().fit_transform(X['embarked'].astype(str)) # Handle missing values by filling with median (for simplicity) X = X.fillna(X.median(numeric_only=True)) # Select top 5 features based on ANOVA F-value selector = SelectKBest(score_func=f_classif, k=5) X_new = selector.fit_transform(X, y) selected_features = X.columns[selector.get_support()] print("Selected features:", list(selected_features))
copy

In questo esempio, viene utilizzato SelectKBest dalla libreria scikit-learn con la funzione di punteggio f_classif per selezionare le cinque caratteristiche più rilevanti—pclass, sex, parch, fare ed embarked—dal dataset Titanic. Questo metodo valuta ciascuna caratteristica individualmente utilizzando i valori F di ANOVA e seleziona quelle con i punteggi più alti. È efficace per i compiti di classificazione poiché si concentra sulle caratteristiche che meglio separano le classi target.

Note
Nota

La selezione di troppe caratteristiche, specialmente quelle irrilevanti, può portare a overfitting, dove il modello ottiene buoni risultati sui dati di addestramento ma scarsi su nuovi dati non visti. Una selezione accurata delle caratteristiche aiuta a ridurre questo rischio e porta a modelli più robusti.

La selezione delle caratteristiche non serve solo a migliorare l'accuratezza—rende anche i modelli più veloci e più facili da interpretare. Concentrandosi solo sulle caratteristiche più importanti, si semplificano i modelli e si riduce la possibilità di apprendere rumore dai dati.

question mark

Quale delle seguenti affermazioni sulla selezione delle caratteristiche è vera?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 1
some-alt