Grunderna i Funktionsurval
Urval av funktioner förbättrar modellens prestanda genom att behålla endast de mest relevanta funktionerna, minska komplexiteten och bidra till att förhindra överanpassning orsakad av irrelevanta eller redundanta data.
Urval av funktioner är processen att välja en delmängd av inmatningsvariabler (features) från dina data som är mest relevanta för det prediktiva modelleringsproblemet.
Metoder för urval av funktioner inkluderar manuell granskning och automatiserade tekniker. Vid klassificeringsuppgifter används statistiska tester för att poängsätta funktioner och välja de som har starkast samband med målvariabeln.
De mest populära metoderna för urval av funktioner delas in i tre kategorier:
- Filtermetoder: Väljer funktioner baserat på statistiska mått, såsom korrelationskoefficienter eller univariata tester, oberoende av någon maskininlärningsmodell;
- Wrappermetoder: Använder en prediktiv modell för att utvärdera olika kombinationer av funktioner, till exempel med rekursiv funktionseliminering (RFE), och väljer den delmängd som ger bäst modellprestanda;
- Inbäddade metoder: Utför urval av funktioner som en del av modellträningsprocessen, såsom Lasso-regularisering, som automatiskt tar bort mindre viktiga funktioner genom att krympa deras koefficienter till noll.
Varje metod balanserar avvägningar mellan beräkningskostnad, tolkbarhet och prediktiv förmåga.
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))
I det här exemplet används SelectKBest från scikit-learn med poängfunktionen f_classif för att välja de fem mest relevanta funktionerna—pclass, sex, parch, fare och embarked—från Titanic-datasetet. Denna metod utvärderar varje funktion individuellt med hjälp av ANOVA F-värden och väljer de med högst poäng. Det är effektivt för klassificeringsuppgifter eftersom det fokuserar på funktioner som bäst särskiljer målklasserna.
Att välja för många funktioner, särskilt irrelevanta, kan leda till överanpassning, där din modell presterar bra på träningsdata men dåligt på ny, osedd data. Noggrant urval av funktioner minskar denna risk och leder till mer robusta modeller.
Urval av funktioner handlar inte bara om att förbättra noggrannheten—det gör även dina modeller snabbare och enklare att tolka. Genom att fokusera enbart på de viktigaste funktionerna förenklas modellerna och risken minskar för att lära sig brus från datan.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Can you explain why only 'sex' and 'fare' were selected as features in the output?
What are some other feature selection methods I could try?
How does SelectKBest with f_classif work in more detail?
Awesome!
Completion rate improved to 8.33
Grunderna i Funktionsurval
Svep för att visa menyn
Urval av funktioner förbättrar modellens prestanda genom att behålla endast de mest relevanta funktionerna, minska komplexiteten och bidra till att förhindra överanpassning orsakad av irrelevanta eller redundanta data.
Urval av funktioner är processen att välja en delmängd av inmatningsvariabler (features) från dina data som är mest relevanta för det prediktiva modelleringsproblemet.
Metoder för urval av funktioner inkluderar manuell granskning och automatiserade tekniker. Vid klassificeringsuppgifter används statistiska tester för att poängsätta funktioner och välja de som har starkast samband med målvariabeln.
De mest populära metoderna för urval av funktioner delas in i tre kategorier:
- Filtermetoder: Väljer funktioner baserat på statistiska mått, såsom korrelationskoefficienter eller univariata tester, oberoende av någon maskininlärningsmodell;
- Wrappermetoder: Använder en prediktiv modell för att utvärdera olika kombinationer av funktioner, till exempel med rekursiv funktionseliminering (RFE), och väljer den delmängd som ger bäst modellprestanda;
- Inbäddade metoder: Utför urval av funktioner som en del av modellträningsprocessen, såsom Lasso-regularisering, som automatiskt tar bort mindre viktiga funktioner genom att krympa deras koefficienter till noll.
Varje metod balanserar avvägningar mellan beräkningskostnad, tolkbarhet och prediktiv förmåga.
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))
I det här exemplet används SelectKBest från scikit-learn med poängfunktionen f_classif för att välja de fem mest relevanta funktionerna—pclass, sex, parch, fare och embarked—från Titanic-datasetet. Denna metod utvärderar varje funktion individuellt med hjälp av ANOVA F-värden och väljer de med högst poäng. Det är effektivt för klassificeringsuppgifter eftersom det fokuserar på funktioner som bäst särskiljer målklasserna.
Att välja för många funktioner, särskilt irrelevanta, kan leda till överanpassning, där din modell presterar bra på träningsdata men dåligt på ny, osedd data. Noggrant urval av funktioner minskar denna risk och leder till mer robusta modeller.
Urval av funktioner handlar inte bara om att förbättra noggrannheten—det gör även dina modeller snabbare och enklare att tolka. Genom att fokusera enbart på de viktigaste funktionerna förenklas modellerna och risken minskar för att lära sig brus från datan.
Tack för dina kommentarer!