Lär Er AI med Python · Lektion

Metoder för feature-urval

Filtermetoder (varians, korrelation), wrapper-metoder (RFE) och inbäddade metoder (L1-reguljärisering).

Lektion 1 av 413 steg

Metoder för feature-urval är en gratis lektion i Lär Er AI med Python på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Lär Er AI med Python, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.

Varför välja features

Featureselektion behåller endast de mest användbara kolumnerna. Färre features innebär snabbare träning, mindre överanpassning och enklare tolkning. Att ta bort brus förbättrar ofta även accuracy.

Tre metodfamiljer

Metoder för featureselektion delas in i tre grupper:

  • Filter rangordnar features efter ett statistiskt mått (snabba och modelloberoende)
  • Wrapper söker efter delmängder genom att träna modeller (långsamma och träffsäkra)
  • Embedded innebär att selektionen sker under modellträningen

VarianceThreshold

Det enklaste filtret: VarianceThreshold tar bort features vars varians ligger under ett gränsvärde. Nästan konstanta kolumner innehåller ingen information.

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 med f_classif

SelectKBest behåller de K features som fått högst poäng. Med f_classif används ett ANOVA F-test som mäter hur starkt varje feature hänger samman med klassetiketten.

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))

Ömsesidig information

mutual_info_classif mäter alla typer av beroenden, inklusive ickelinjära, mellan en feature och målet. Till skillnad från F-testet fångar metoden ickelinjära samband som ANOVA missar.

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)

Jämförelse mellan f_classif och mutual_info

f_classif är snabbt och upptäcker linjära samband; mutual_info_classif är långsammare men fångar ickelinjära samband. Om du misstänker komplexa samband bör du föredra ömsesidig information.

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])

Rekursiv eliminering av features

RFE är en wrapper-metod: den tränar en modell, tar bort den minst betydelsefulla featuren och upprepar processen. Metoden använder modellens eget importance-mått för att rangordna features.

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: välja antalet automatiskt

RFECV lägger till korsvalidering i RFE så att det optimala antalet features hittas utifrån valideringspoängen i stället för en fast gissning.

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 med Lasso

Inbäddad selektion: Lasso (L1) krymper oviktiga koefficienter till exakt noll. SelectFromModel behåller sedan endast de koefficienter som inte är noll.

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 med trädens importans

SelectFromModel fungerar även med alla estimatorer som exponerar feature_importances_, till exempel random forests. Ange ett threshold som "mean" eller "median".

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

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

Välja metod

Börja med billiga filter (VarianceThreshold, SelectKBest) för att ta bort uppenbart skräp. Använd inbäddad SelectFromModel för en bra avvägning. Spara RFECV tills högsta möjliga accuracy är viktigast och beräkningsresurserna räcker till.

Snabbkontroll

Testa era kunskaper om featureselektion.

Sammanfattning

Sammanfattning: Featureselektion omfattar filtermetoder (VarianceThreshold, SelectKBest med f_classif eller mutual_info_classif), wrapper-metoder (RFECV) och inbäddade metoder (SelectFromModel med Lasso eller trädens featureimportans). Filter är snabbast; RFECV är mest träffsäkert. Använd ömsesidig information för ickelinjära samband.

Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
53
Lektioner
225

Vanliga frågor

Är lektionen ”Metoder för feature-urval” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Lär Er AI med Python, inklusive ”Metoder för feature-urval”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.

Vad lär jag mig i ”Metoder för feature-urval”?

Filtermetoder (varians, korrelation), wrapper-metoder (RFE) och inbäddade metoder (L1-reguljärisering). Ni övar på Lär Er AI med Python med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Lär Er AI med Python?

Du behöver inga förkunskaper. Utbildningen i Lär Er AI med Python på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Metoder för feature-urval”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Lär Er AI med Python-lektionen?

Ja. Varje Lär Er AI med Python-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Metoder för feature-urval
  2. Skapa interaktions- och polynomfeatures
  3. Målkodning och avancerad hantering av kategoriska data
  4. Automatiserad feature engineering med Featuretools
← Tillbaka till Lär Er AI med Python