Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Grunnleggende om Funksjonsutvalg | Funksjonsutvikling for Maskinlæring
Dataprosessering og Feature Engineering

bookGrunnleggende om Funksjonsutvalg

Funksjonsutvelgelse forbedrer modellens ytelse ved å beholde kun de mest relevante funksjonene, redusere kompleksiteten og bidra til å forhindre overtilpasning forårsaket av irrelevante eller redundante data.

Note
Definisjon

Funksjonsutvelgelse er prosessen med å velge et delsett av inngangsvariabler (features) fra dataene dine som er mest relevante for det prediktive modelleringsproblemet.

Metoder for funksjonsutvelgelse inkluderer manuell gjennomgang og automatiserte teknikker. Ved klassifiseringsoppgaver brukes statistiske tester for å rangere funksjoner og velge de som har sterkest tilknytning til målvariabelen.

De mest populære metodene for funksjonsutvelgelse deles inn i tre kategorier:

  • Filtermetoder: Velger funksjoner basert på statistiske mål, som korrelasjonskoeffisienter eller univariate tester, uavhengig av maskinlæringsmodell;
  • Wrapper-metoder: Bruker en prediktiv modell for å evaluere ulike kombinasjoner av funksjoner, for eksempel med rekursiv funksjonseliminering (RFE), og velger det delsettet som gir best modellprestasjon;
  • Innebygde metoder: Utfører funksjonsutvelgelse som en del av modelltreningsprosessen, som Lasso-regularisering, som automatisk fjerner mindre viktige funksjoner ved å redusere koeffisientene deres til null.

Hver metode balanserer avveininger mellom beregningskostnad, tolkbarhet og prediktiv styrke.

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

I dette eksemplet bruker du SelectKBest fra scikit-learn med scoringsfunksjonen f_classif for å velge de fem mest relevante egenskapene—pclass, sex, parch, fare og embarked—fra Titanic-datasettet. Denne metoden evaluerer hver egenskap individuelt ved hjelp av ANOVA F-verdier og velger de med høyest score. Dette er effektivt for klassifiseringsoppgaver fordi det fokuserer på egenskaper som best skiller målklassene.

Note
Merk

Å velge for mange egenskaper, spesielt irrelevante, kan føre til overtilpasning, der modellen din presterer godt på treningsdata, men dårlig på nye, ukjente data. Nøye utvalg av egenskaper bidrar til å redusere denne risikoen og gir mer robuste modeller.

Funksjonsutvelgelse handler ikke bare om å forbedre nøyaktighet—det gjør også modellene dine raskere og enklere å tolke. Ved å fokusere kun på de viktigste funksjonene, forenkler du modellene og reduserer sjansen for å lære støy fra dataene.

question mark

Hvilket av følgende utsagn om funksjonsutvelgelse er sant?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 1

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

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

bookGrunnleggende om Funksjonsutvalg

Sveip for å vise menyen

Funksjonsutvelgelse forbedrer modellens ytelse ved å beholde kun de mest relevante funksjonene, redusere kompleksiteten og bidra til å forhindre overtilpasning forårsaket av irrelevante eller redundante data.

Note
Definisjon

Funksjonsutvelgelse er prosessen med å velge et delsett av inngangsvariabler (features) fra dataene dine som er mest relevante for det prediktive modelleringsproblemet.

Metoder for funksjonsutvelgelse inkluderer manuell gjennomgang og automatiserte teknikker. Ved klassifiseringsoppgaver brukes statistiske tester for å rangere funksjoner og velge de som har sterkest tilknytning til målvariabelen.

De mest populære metodene for funksjonsutvelgelse deles inn i tre kategorier:

  • Filtermetoder: Velger funksjoner basert på statistiske mål, som korrelasjonskoeffisienter eller univariate tester, uavhengig av maskinlæringsmodell;
  • Wrapper-metoder: Bruker en prediktiv modell for å evaluere ulike kombinasjoner av funksjoner, for eksempel med rekursiv funksjonseliminering (RFE), og velger det delsettet som gir best modellprestasjon;
  • Innebygde metoder: Utfører funksjonsutvelgelse som en del av modelltreningsprosessen, som Lasso-regularisering, som automatisk fjerner mindre viktige funksjoner ved å redusere koeffisientene deres til null.

Hver metode balanserer avveininger mellom beregningskostnad, tolkbarhet og prediktiv styrke.

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

I dette eksemplet bruker du SelectKBest fra scikit-learn med scoringsfunksjonen f_classif for å velge de fem mest relevante egenskapene—pclass, sex, parch, fare og embarked—fra Titanic-datasettet. Denne metoden evaluerer hver egenskap individuelt ved hjelp av ANOVA F-verdier og velger de med høyest score. Dette er effektivt for klassifiseringsoppgaver fordi det fokuserer på egenskaper som best skiller målklassene.

Note
Merk

Å velge for mange egenskaper, spesielt irrelevante, kan føre til overtilpasning, der modellen din presterer godt på treningsdata, men dårlig på nye, ukjente data. Nøye utvalg av egenskaper bidrar til å redusere denne risikoen og gir mer robuste modeller.

Funksjonsutvelgelse handler ikke bare om å forbedre nøyaktighet—det gjør også modellene dine raskere og enklere å tolke. Ved å fokusere kun på de viktigste funksjonene, forenkler du modellene og reduserer sjansen for å lære støy fra dataene.

question mark

Hvilket av følgende utsagn om funksjonsutvelgelse er sant?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 1
some-alt