Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Valg af Funktioner | Multipel Lineær Regression
Lineær Regression med Python

Valg 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, undersøge hvilke features der ikke er nyttige, og derefter genoptræne ved kun at bruge de betydningsfulde.

GodeDårligeFeatures

Hvorfor fjerne features fra modellen?

Hvis du tilføjer en feature, der ikke er relateret til målet, tilføres der støj, hvilket forværrer forudsigelserne. Mange unyttige features ophober støj og reducerer modellens kvalitet yderligere.

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

OLS giver statistiske tests under træningen. Hver funktion får et t-test resultat, vist i summary()-tabellen, som indikerer, om den har en signifikant effekt på målet.

123456789
import pandas as pd import statsmodels.api as sm 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) # Open the file X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde regression_model = sm.OLS(y, X_tilde).fit() # Initialize and train an OLS object print(regression_model.summary()) #Get the summary

Det, vi er interesserede i, er p-værdien for hver funktion.

p-værdier

Kort sagt, jo lavere p-værdi, desto større tillid til at egenskaben har betydning

eksempel på p-værdier

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 have væsentlig indflydelse.

I praksis kan lidt højere p-værdier (lige over 0,05) stadig bidrage til modellen. Det er sikrere at teste modellen både med og uden en sådan egenskab. Men hvis p-værdien er meget høj (>0,4), kan den fjernes med sikkerhed.

Note
Bemærk

p-værdi 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å henholdsvis 0,087 og 0,051. Hvis vi fjerner funktioner med en p-værdi > 0,05, får vi resultatet nedenfor (til venstre).

Sammenligning af modeller

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 mellem virkelig betydningsfulde features og støjende.

Hvordan fjerner man dårlige features?

Du skal blot fjerne kolonnen, der er 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', kan du bruge:

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

Og derefter opret en ny OLS-objekt ved at bruge det opdaterede X_tilde:

regression_model=sm.OLS(y, X_tilde)

1. Hvilke af funktionerne bør du BEHOLDE?

2. Vælg den FORKERTE påstand.

question mark

Hvilke af funktionerne bør du BEHOLDE?

Vælg alle korrekte svar

question mark

Vælg den FORKERTE påstand.

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 4

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

Sektion 2. Kapitel 4
some-alt