Valg 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.
1234567891011121314151617import 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)
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.
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.
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.
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
Fantastisk!
Completion rate forbedret til 3.33
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, 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.
1234567891011121314151617import 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)
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.
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.
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.
Tak for dine kommentarer!