Basi 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.
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.
1234567891011121314151617181920212223242526import 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))
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.
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.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Fantastico!
Completion tasso migliorato a 8.33
Basi 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.
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.
1234567891011121314151617181920212223242526import 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))
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.
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.
Grazie per i tuoi commenti!