Valg af Funktioner
Når der arbejdes med mange features, ved man ofte ikke, hvilke der er vigtige. En model kan trænes med dem alle, hvorefter det kan vurderes, hvilke features der er uden betydning, og derefter kan modellen gen-trænes med kun de mest indflydelsesrige.
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 akkumulerer støj og reducerer modellens kvalitet yderligere.
Hvordan vurderes om features er gode eller dårlige?
OLS leverer statistiske tests under træningen. Hver feature får et t-test resultat, som vises i summary() tabellen, hvilket indikerer om den har en signifikant effekt på målet.
123456789import 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 feature.
Kort sagt, jo lavere p-værdi, desto større sikkerhed for, at feature har betydning.
Inden for statistik fastsætter vi 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 du trygt fjerne den.
p-værdien ligger mellem 0 og 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 mors højde 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).
Selv visuelt kan vi se, at modellen med konstant (til højre) er bedre, så det er bedre ikke at fjerne den fra modellen.
Små datasæt giver ofte højere p-værdier (0,05–0,2) selv for meningsfulde funktioner. P-værdier afspejler sikkerhed: med flere data bliver det lettere at skelne virkelig indflydelsesrige funktioner fra støjende.
Hvordan fjerner man dårlige features?
Det er blot nødvendigt at fjerne kolonnen, der relaterer 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', anvendes:
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.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain what a p-value actually represents in this context?
How do I interpret the summary table from the OLS regression?
What should I do if both features have p-values just above 0.05?
Awesome!
Completion rate improved to 5.26
Valg af Funktioner
Stryg for at vise menuen
Når der arbejdes med mange features, ved man ofte ikke, hvilke der er vigtige. En model kan trænes med dem alle, hvorefter det kan vurderes, hvilke features der er uden betydning, og derefter kan modellen gen-trænes med kun de mest indflydelsesrige.
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 akkumulerer støj og reducerer modellens kvalitet yderligere.
Hvordan vurderes om features er gode eller dårlige?
OLS leverer statistiske tests under træningen. Hver feature får et t-test resultat, som vises i summary() tabellen, hvilket indikerer om den har en signifikant effekt på målet.
123456789import 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 feature.
Kort sagt, jo lavere p-værdi, desto større sikkerhed for, at feature har betydning.
Inden for statistik fastsætter vi 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 du trygt fjerne den.
p-værdien ligger mellem 0 og 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 mors højde 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).
Selv visuelt kan vi se, at modellen med konstant (til højre) er bedre, så det er bedre ikke at fjerne den fra modellen.
Små datasæt giver ofte højere p-værdier (0,05–0,2) selv for meningsfulde funktioner. P-værdier afspejler sikkerhed: med flere data bliver det lettere at skelne virkelig indflydelsesrige funktioner fra støjende.
Hvordan fjerner man dårlige features?
Det er blot nødvendigt at fjerne kolonnen, der relaterer 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', anvendes:
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.
Tak for dine kommentarer!