Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Valg af Funktioner | Sektion
Practice
Projects
Quizzes & Challenges
Quizzer
Challenges
/
Supervised Learning Essentials

bookValg af Funktioner

Når du arbejder med mange features, ved du ofte ikke, hvilke der er vigtige. Du kan træne en model med dem alle, kontrollere hvilke features der er unyttige, og derefter genoptræne ved kun at bruge de betydningsfulde.

Hvorfor fjerne features fra modellen?

Tilføjelse af en feature, der ikke er relateret til målet, introducerer støj og forværrer forudsigelserne. Mange unyttige features ophober støj og reducerer modellens kvalitet yderligere.

Hvordan ved man, om features er gode eller dårlige?

For at vurdere om features har en væsentlig effekt på målet, kan vi beregne p-værdier for hver feature. En lav p-værdi antyder, at featuren 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-værdi, desto større tillid til, at egenskaben er betydningsfuld. Typisk betragtes en p-værdi mindre end 0,05 som statistisk signifikant.

I eksemplet ovenfor:

  • Father: (ekstremt lille, meget signifikant)
  • Mother: (meget lille, meget signifikant)

Begge egenskaber er gode prædiktorer for målet.

Inden for statistik fastsættes et signifikansniveau, typisk 0,05. Hvis en egenskabs p-værdi overstiger denne grænse, anses den for ikke at være betydningsfuld.

I praksis kan lidt højere p-værdier (lige over 0,05) stadig være gavnlige for modellen. Det er sikrere at teste modellen både med og uden en sådan feature. Men hvis p-værdien er meget høj (>0,4), kan du trygt fjerne den.

Note
Bemærk

p-værdien varierer fra 0 til 1, så når vi taler om lav p-værdi, mener vi mindre end 0,05, og høj p-værdi betyder normalt større end 0,3-0,5.

I vores eksempel fik vi p-værdier for Mother's height og konstant på 0,087 og 0,051. Hvis vi fjerner features med en p-værdi > 0,05, får vi resultatet nedenfor (til venstre).

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

Note
Bemærk

Små datasæt giver ofte højere p-værdier (0,05–0,2) selv for meningsfulde features. P-værdier afspejler sikkerhed: med flere data bliver det lettere at skelne virkelig betydningsfulde features fra støjende.

Hvordan fjerner man dårlige features?

Du skal blot fjerne kolonnen relateret til featuret fra X_tilde. Dette kan gøres med følgende kode:

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

For eksempel, for at fjerne kolonnerne 'const' og 'Mother' bruges:

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

Opret derefter et nyt OLS-objekt ved at bruge det opdaterede X_tilde:

regression_model=sm.OLS(y, X_tilde)

1. Hvilke af funktionerne bør BEHOLDES?

2. Vælg den FORKERTE påstand.

question mark

Hvilke af funktionerne bør BEHOLDES?

Select all correct answers

question mark

Vælg den FORKERTE påstand.

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 8

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

bookValg af Funktioner

Stryg for at vise menuen

Når du arbejder med mange features, ved du ofte ikke, hvilke der er vigtige. Du kan træne en model med dem alle, kontrollere hvilke features der er unyttige, og derefter genoptræne ved kun at bruge de betydningsfulde.

Hvorfor fjerne features fra modellen?

Tilføjelse af en feature, der ikke er relateret til målet, introducerer støj og forværrer forudsigelserne. Mange unyttige features ophober støj og reducerer modellens kvalitet yderligere.

Hvordan ved man, om features er gode eller dårlige?

For at vurdere om features har en væsentlig effekt på målet, kan vi beregne p-værdier for hver feature. En lav p-værdi antyder, at featuren 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-værdi, desto større tillid til, at egenskaben er betydningsfuld. Typisk betragtes en p-værdi mindre end 0,05 som statistisk signifikant.

I eksemplet ovenfor:

  • Father: (ekstremt lille, meget signifikant)
  • Mother: (meget lille, meget signifikant)

Begge egenskaber er gode prædiktorer for målet.

Inden for statistik fastsættes et signifikansniveau, typisk 0,05. Hvis en egenskabs p-værdi overstiger denne grænse, anses den for ikke at være betydningsfuld.

I praksis kan lidt højere p-værdier (lige over 0,05) stadig være gavnlige for modellen. Det er sikrere at teste modellen både med og uden en sådan feature. Men hvis p-værdien er meget høj (>0,4), kan du trygt fjerne den.

Note
Bemærk

p-værdien varierer fra 0 til 1, så når vi taler om lav p-værdi, mener vi mindre end 0,05, og høj p-værdi betyder normalt større end 0,3-0,5.

I vores eksempel fik vi p-værdier for Mother's height og konstant på 0,087 og 0,051. Hvis vi fjerner features med en p-værdi > 0,05, får vi resultatet nedenfor (til venstre).

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

Note
Bemærk

Små datasæt giver ofte højere p-værdier (0,05–0,2) selv for meningsfulde features. P-værdier afspejler sikkerhed: med flere data bliver det lettere at skelne virkelig betydningsfulde features fra støjende.

Hvordan fjerner man dårlige features?

Du skal blot fjerne kolonnen relateret til featuret fra X_tilde. Dette kan gøres med følgende kode:

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

For eksempel, for at fjerne kolonnerne 'const' og 'Mother' bruges:

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

Opret derefter et nyt OLS-objekt ved at bruge det opdaterede X_tilde:

regression_model=sm.OLS(y, X_tilde)

1. Hvilke af funktionerne bør BEHOLDES?

2. Vælg den FORKERTE påstand.

question mark

Hvilke af funktionerne bør BEHOLDES?

Select all correct answers

question mark

Vælg den FORKERTE påstand.

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 8
some-alt