Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Het Kiezen van de Kenmerken | Sectie
Essentiële Supervised Learning

bookHet 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.

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

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.

Note
Opmerking

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.

Note
Opmerking

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.

question mark

Welke van de kenmerken moet u BEHOUDEN?

Select all correct answers

question mark

Kies de ONJUISTE uitspraak.

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 8

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

bookHet 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.

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

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.

Note
Opmerking

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.

Note
Opmerking

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.

question mark

Welke van de kenmerken moet u BEHOUDEN?

Select all correct answers

question mark

Kies de ONJUISTE uitspraak.

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 8
some-alt