Het Kiezen van de Kenmerken
Bij het werken met veel kenmerken is het vaak onduidelijk welke van belang zijn. Een model kan getraind worden met alle kenmerken, waarna gecontroleerd wordt welke kenmerken niet behulpzaam zijn, om vervolgens opnieuw te trainen met alleen de relevante kenmerken.
Waarom Kenmerken uit het Model Verwijderen?
Het toevoegen van een kenmerk dat geen relatie heeft met de target introduceert ruis en verslechtert de voorspellingen. Veel nutteloze kenmerken stapelen ruis op en verminderen de modelkwaliteit verder.
Hoe Bepalen of Kenmerken Goed of Slecht Zijn?
Om te beoordelen of kenmerken significant invloed hebben op de target, kunnen de p-waarden voor elk kenmerk berekend worden. Een lage p-waarde geeft aan dat het kenmerk statistisch significant is.
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)
Kortom, hoe lager de p-waarde, hoe groter het vertrouwen dat het kenmerk invloedrijk is. Gewoonlijk wordt een p-waarde kleiner dan 0,05 als statistisch significant beschouwd.
In het bovenstaande voorbeeld:
Father: (extreem klein, zeer significant)Mother: (zeer klein, zeer significant)
Beide kenmerken zijn goede voorspellers voor de target.
In de statistiek stellen we een significantieniveau in, meestal 0,05. Als de p-waarde van een kenmerk deze drempel overschrijdt, wordt het als niet invloedrijk beschouwd.
In de praktijk kunnen iets hogere p-waarden (net boven 0,05) het model nog steeds ondersteunen. Het is veiliger om het model te testen met en zonder zo'n kenmerk. Maar als de p-waarde zeer hoog is (>0,4), kun je deze met vertrouwen verwijderen.
De p-waarde varieert van 0 tot 1, dus wanneer we spreken over een lage p-waarde bedoelen we minder dan 0,05 en een hoge p-waarde betekent meestal groter dan 0,3-0,5.
In ons voorbeeld kregen we p-waarden voor Mother's height en constant van 0,087 en 0,051. Als we kenmerken met een p-waarde > 0,05 verwijderen, krijgen we het onderstaande resultaat (links).
Zelfs visueel kunnen we zien dat het model met constante (rechts) beter is, dus het is beter om deze niet uit het model te verwijderen.
Kleine datasets leveren vaak hogere p-waarden op (0,05–0,2), zelfs voor betekenisvolle kenmerken. P-waarden geven het vertrouwen weer: met meer data wordt het eenvoudiger om echt invloedrijke kenmerken van ruis te onderscheiden.
Hoe verwijder je slechte kenmerken?
Verwijder eenvoudig de kolom die bij het kenmerk hoort uit X_tilde. Dit kan met de volgende code:
X_tilde = X_tilde.drop(___, axis=1)
Bijvoorbeeld, om de kolommen 'const' en 'Mother' te verwijderen, gebruikt u:
X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)
En vervolgens een nieuw OLS-object aanmaken met het bijgewerkte X_tilde:
regression_model=sm.OLS(y, X_tilde)
1. Welke van de kenmerken moet u BEHOUDEN?
2. Kies de ONJUISTE uitspraak.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Geweldig!
Completion tarief verbeterd naar 3.33
Het Kiezen van de Kenmerken
Veeg om het menu te tonen
Bij het werken met veel kenmerken is het vaak onduidelijk welke van belang zijn. Een model kan getraind worden met alle kenmerken, waarna gecontroleerd wordt welke kenmerken niet behulpzaam zijn, om vervolgens opnieuw te trainen met alleen de relevante kenmerken.
Waarom Kenmerken uit het Model Verwijderen?
Het toevoegen van een kenmerk dat geen relatie heeft met de target introduceert ruis en verslechtert de voorspellingen. Veel nutteloze kenmerken stapelen ruis op en verminderen de modelkwaliteit verder.
Hoe Bepalen of Kenmerken Goed of Slecht Zijn?
Om te beoordelen of kenmerken significant invloed hebben op de target, kunnen de p-waarden voor elk kenmerk berekend worden. Een lage p-waarde geeft aan dat het kenmerk statistisch significant is.
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)
Kortom, hoe lager de p-waarde, hoe groter het vertrouwen dat het kenmerk invloedrijk is. Gewoonlijk wordt een p-waarde kleiner dan 0,05 als statistisch significant beschouwd.
In het bovenstaande voorbeeld:
Father: (extreem klein, zeer significant)Mother: (zeer klein, zeer significant)
Beide kenmerken zijn goede voorspellers voor de target.
In de statistiek stellen we een significantieniveau in, meestal 0,05. Als de p-waarde van een kenmerk deze drempel overschrijdt, wordt het als niet invloedrijk beschouwd.
In de praktijk kunnen iets hogere p-waarden (net boven 0,05) het model nog steeds ondersteunen. Het is veiliger om het model te testen met en zonder zo'n kenmerk. Maar als de p-waarde zeer hoog is (>0,4), kun je deze met vertrouwen verwijderen.
De p-waarde varieert van 0 tot 1, dus wanneer we spreken over een lage p-waarde bedoelen we minder dan 0,05 en een hoge p-waarde betekent meestal groter dan 0,3-0,5.
In ons voorbeeld kregen we p-waarden voor Mother's height en constant van 0,087 en 0,051. Als we kenmerken met een p-waarde > 0,05 verwijderen, krijgen we het onderstaande resultaat (links).
Zelfs visueel kunnen we zien dat het model met constante (rechts) beter is, dus het is beter om deze niet uit het model te verwijderen.
Kleine datasets leveren vaak hogere p-waarden op (0,05–0,2), zelfs voor betekenisvolle kenmerken. P-waarden geven het vertrouwen weer: met meer data wordt het eenvoudiger om echt invloedrijke kenmerken van ruis te onderscheiden.
Hoe verwijder je slechte kenmerken?
Verwijder eenvoudig de kolom die bij het kenmerk hoort uit X_tilde. Dit kan met de volgende code:
X_tilde = X_tilde.drop(___, axis=1)
Bijvoorbeeld, om de kolommen 'const' en 'Mother' te verwijderen, gebruikt u:
X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)
En vervolgens een nieuw OLS-object aanmaken met het bijgewerkte X_tilde:
regression_model=sm.OLS(y, X_tilde)
1. Welke van de kenmerken moet u BEHOUDEN?
2. Kies de ONJUISTE uitspraak.
Bedankt voor je feedback!