Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Velge Egenskapene | Seksjon
Grunnleggende Overvåket Læring

bookVelge Egenskapene

Når du arbeider med mange funksjoner, vet du ofte ikke hvilke som er viktige. Du kan trene en modell med alle funksjonene, undersøke hvilke som ikke bidrar, og deretter trene modellen på nytt med kun de mest betydningsfulle.

Hvorfor fjerne funksjoner fra modellen?

Å legge til en funksjon som ikke er relatert til målet, introduserer støy og forverrer prediksjonene. Mange unyttige funksjoner øker støyen og reduserer modellens kvalitet ytterligere.

Hvordan vite om funksjonene er gode eller dårlige?

For å vurdere om funksjonene har betydelig innvirkning på målet, kan vi beregne p-verdier for hver funksjon. En lav p-verdi antyder at funksjonen er statistisk signifikant.

1234567891011121314151617
import pandas as pd from sklearn.feature_selection import f_regression file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) X, y = df[['Father', 'Mother']], df['Height'] # f_regression returns F-statistic and p-values f_stat, p_values = f_regression(X, y) # Create a DataFrame to view results nicely results = pd.DataFrame({ 'Feature': X.columns, 'p_value': p_values }) print(results)
copy

Kort sagt, jo lavere p-verdi, desto høyere tillit til at egenskapen har betydning. Vanligvis anses en p-verdi mindre enn 0,05 som statistisk signifikant.

I eksempelet ovenfor:

  • Father: (ekstremt liten, svært signifikant)
  • Mother: (veldig liten, svært signifikant)

Begge egenskapene er gode prediktorer for målet.

I statistikk setter vi et signifikansnivå, vanligvis 0,05. Hvis en egenskaps p-verdi overstiger denne terskelen, anses den som ikke betydningsfull.

I praksis kan litt høyere p-verdier (rett over 0,05) fortsatt være nyttige for modellen. Det er tryggere å teste modellen både med og uten en slik variabel. Men hvis p-verdien er svært høy (>0,4), kan du trygt fjerne den.

Note
Merk

p-verdien varierer fra 0 til 1, så når vi snakker om lav p-verdi mener vi mindre enn 0,05, og høy p-verdi betyr vanligvis større enn 0,3-0,5.

I vårt eksempel fikk vi p-verdier for Mother's height og konstant på 0.087 og 0.051. Hvis vi fjerner variabler med p-verdi > 0.05, får vi resultatet under (til venstre).

Selv visuelt kan vi se at modellen med konstant (til høyre) er bedre, så det er best å ikke fjerne den fra modellen.

Note
Merk

Små datasett gir ofte høyere p-verdier (0,05–0,2) selv for meningsfulle egenskaper. P-verdier reflekterer sikkerhet: med mer data blir det lettere å skille virkelig innflytelsesrike egenskaper fra støyende.

Hvordan fjerne dårlige egenskaper?

Du trenger bare å fjerne kolonnen som er relatert til egenskapen fra X_tilde. Dette kan gjøres med følgende kode:

X_tilde = X_tilde.drop(___, axis=1)

For eksempel, for å fjerne kolonnene 'const' og 'Mother' bruker du:

X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)

Deretter oppretter du et nytt OLS-objekt ved å bruke oppdatert X_tilde:

regression_model=sm.OLS(y, X_tilde)

1. Hvilke av egenskapene bør beholdes?

2. Velg den FEILAKTIGE påstanden.

question mark

Hvilke av egenskapene bør beholdes?

Select all correct answers

question mark

Velg den FEILAKTIGE påstanden.

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 8

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

bookVelge Egenskapene

Sveip for å vise menyen

Når du arbeider med mange funksjoner, vet du ofte ikke hvilke som er viktige. Du kan trene en modell med alle funksjonene, undersøke hvilke som ikke bidrar, og deretter trene modellen på nytt med kun de mest betydningsfulle.

Hvorfor fjerne funksjoner fra modellen?

Å legge til en funksjon som ikke er relatert til målet, introduserer støy og forverrer prediksjonene. Mange unyttige funksjoner øker støyen og reduserer modellens kvalitet ytterligere.

Hvordan vite om funksjonene er gode eller dårlige?

For å vurdere om funksjonene har betydelig innvirkning på målet, kan vi beregne p-verdier for hver funksjon. En lav p-verdi antyder at funksjonen er statistisk signifikant.

1234567891011121314151617
import pandas as pd from sklearn.feature_selection import f_regression file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) X, y = df[['Father', 'Mother']], df['Height'] # f_regression returns F-statistic and p-values f_stat, p_values = f_regression(X, y) # Create a DataFrame to view results nicely results = pd.DataFrame({ 'Feature': X.columns, 'p_value': p_values }) print(results)
copy

Kort sagt, jo lavere p-verdi, desto høyere tillit til at egenskapen har betydning. Vanligvis anses en p-verdi mindre enn 0,05 som statistisk signifikant.

I eksempelet ovenfor:

  • Father: (ekstremt liten, svært signifikant)
  • Mother: (veldig liten, svært signifikant)

Begge egenskapene er gode prediktorer for målet.

I statistikk setter vi et signifikansnivå, vanligvis 0,05. Hvis en egenskaps p-verdi overstiger denne terskelen, anses den som ikke betydningsfull.

I praksis kan litt høyere p-verdier (rett over 0,05) fortsatt være nyttige for modellen. Det er tryggere å teste modellen både med og uten en slik variabel. Men hvis p-verdien er svært høy (>0,4), kan du trygt fjerne den.

Note
Merk

p-verdien varierer fra 0 til 1, så når vi snakker om lav p-verdi mener vi mindre enn 0,05, og høy p-verdi betyr vanligvis større enn 0,3-0,5.

I vårt eksempel fikk vi p-verdier for Mother's height og konstant på 0.087 og 0.051. Hvis vi fjerner variabler med p-verdi > 0.05, får vi resultatet under (til venstre).

Selv visuelt kan vi se at modellen med konstant (til høyre) er bedre, så det er best å ikke fjerne den fra modellen.

Note
Merk

Små datasett gir ofte høyere p-verdier (0,05–0,2) selv for meningsfulle egenskaper. P-verdier reflekterer sikkerhet: med mer data blir det lettere å skille virkelig innflytelsesrike egenskaper fra støyende.

Hvordan fjerne dårlige egenskaper?

Du trenger bare å fjerne kolonnen som er relatert til egenskapen fra X_tilde. Dette kan gjøres med følgende kode:

X_tilde = X_tilde.drop(___, axis=1)

For eksempel, for å fjerne kolonnene 'const' og 'Mother' bruker du:

X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)

Deretter oppretter du et nytt OLS-objekt ved å bruke oppdatert X_tilde:

regression_model=sm.OLS(y, X_tilde)

1. Hvilke av egenskapene bør beholdes?

2. Velg den FEILAKTIGE påstanden.

question mark

Hvilke av egenskapene bør beholdes?

Select all correct answers

question mark

Velg den FEILAKTIGE påstanden.

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 8
some-alt