Lær AI med Python · Lektion

Metoder til featureudvælgelse

Filtermetoder (varians, korrelation), wrappermetoder (RFE) og indlejrede metoder (L1-regularisering).

Lektion 1 af 413 trin

Metoder til featureudvælgelse er en gratis Lær AI med Python-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Lær AI med Python, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Lær AI med Python-kurset indeholder 4 lektioner i alt.

Hvorfor udvælge egenskaber

Udvælgelse af egenskaber beholder kun de mest nyttige kolonner. Færre egenskaber betyder hurtigere træning, mindre overtilpasning og lettere fortolkning. Fjernelse af støj forbedrer ofte også nøjagtigheden.

Tre metodefamilier

Udvælgelsesmetoder falder i tre grupper:

  • Filtermetoder rangerer egenskaber efter en statistisk størrelse (hurtige, modeluafhængige)
  • Omsluttende metoder søger efter delmængder ved at træne modeller (langsomme, nøjagtige)
  • Indlejrede metoder udfører udvælgelsen under modeltilpasningen

VarianceThreshold

Det enkleste filter: VarianceThreshold fjerner egenskaber, hvis varians ligger under en grænseværdi. Næsten konstante kolonner indeholder 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 beholder de K egenskaber med højest vurdering. Med f_classif anvender den en ANOVA-F-test, der måler, hvor stærkt hver egenskab hænger sammen med klassens etiket.

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

Gensidig information

mutual_info_classif måler enhver afhængighed, også ikke-lineær, mellem en egenskab og målet. I modsætning til F-testen opfanger den ikke-lineære sammenhænge, som ANOVA overser.

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)

Sammenligning af f_classif og mutual_info

f_classif er hurtig og finder lineære sammenhænge; mutual_info_classif er langsommere, men finder ikke-lineære sammenhænge. Hvis du forventer komplekse sammenhænge, bør du foretrække gensidig 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 udvælgelse af egenskaber

RFE er en omsluttende metode: den træner en model, fjerner den svageste egenskab og gentager processen. Den bruger modellens eget vigtighedssignal til at rangordne egenskaber.

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: Automatisk valg af antal

RFECV føjer krydsvalidering til RFE, så den finder det optimale antal egenskaber ud fra valideringsresultatet i stedet for et fast gæt.

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

Indlejret udvælgelse: Lasso (L1) krymper uvigtige koefficienter præcis til nul. SelectFromModel beholder derefter kun koefficienter, der ikke er nul.

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æbaserede vigtigheder

SelectFromModel fungerer også med enhver estimator, der eksponerer feature_importances_, f.eks. random forest-modeller. Indstil en 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)

Valg af metode

Begynd med billige filtre (VarianceThreshold, SelectKBest) for at fjerne åbenlyst værdiløse egenskaber. Brug indlejret SelectFromModel for en god balance. Forbehold RFECV til situationer, hvor nøjagtigheden er vigtigst, og beregningsressourcerne rækker.

Hurtig kontrol

Afprøv din viden om udvælgelse af egenskaber.

Opsummering

Opsummering: Udvælgelse af egenskaber omfatter filtermetoder (VarianceThreshold, SelectKBest med f_classif eller mutual_info_classif), omsluttende metoder (RFECV) og indlejrede metoder (SelectFromModel med Lasso eller træbaserede vigtigheder). Filtre er hurtigst; RFECV er mest nøjagtig. Brug gensidig information til ikke-lineære sammenhænge.

Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
53
Lektioner
225

Ofte stillede spørgsmål

Er lektionen “Metoder til featureudvælgelse” gratis?

Ja — alle 3 lektioner i læringssporet Lær AI med Python, inklusive “Metoder til featureudvælgelse”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Lær AI med Python-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Metoder til featureudvælgelse”?

Filtermetoder (varians, korrelation), wrappermetoder (RFE) og indlejrede metoder (L1-regularisering). Du øver dig i Lær AI med Python med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Lær AI med Python?

Der kræves ingen tidligere erfaring. Lær AI med Python på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Metoder til featureudvælgelse”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Lær AI med Python-lektion?

Ja. Alle Lær AI med Python-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Metoder til featureudvælgelse
  2. Oprettelse af interaktions- og polynomielle features
  3. Target encoding og avanceret håndtering af kategoriske data
  4. Automatiseret feature engineering med Featuretools
← Tilbage til Lær AI med Python