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 | Meervoudige Lineaire Regressie
Lineaire Regressie met Python

Het Kiezen van de Kenmerken

Veeg om het menu te tonen

Bij het werken met veel features weet je vaak niet welke belangrijk zijn. Je kunt een model trainen met allemaal, controleren welke features niet behulpzaam zijn en vervolgens opnieuw trainen met alleen de invloedrijke features.

GoedeSlechteFeatures

Waarom features uit het model verwijderen?

Het toevoegen van een feature die niet gerelateerd is aan de target introduceert ruis en verslechtert de voorspellingen. Veel nutteloze features stapelen ruis op en verminderen de modelkwaliteit verder.

Hoe weet je of de features goed of slecht zijn?

OLS biedt statistische tests tijdens de training. Elke feature krijgt een t-testresultaat, weergegeven in de summary()-tabel, dat aangeeft of deze een significante invloed heeft op de target.

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

Waar we in geïnteresseerd zijn, is de p-waarde voor elke feature.

p-waarden

Kortom, hoe lager de p-waarde, hoe groter het vertrouwen dat het kenmerk invloedrijk is

voorbeeld van p-waarden

In de statistiek stellen we een significantieniveau in, meestal 0,05. Als de p-waarde van een feature deze drempel overschrijdt, wordt deze 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 feature. Maar als de p-waarde erg hoog is (>0,4), kun je deze met vertrouwen verwijderen.

Note
Opmerking

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 de lengte van de moeder en de constante van respectievelijk 0,087 en 0,051. Als we kenmerken met een p-waarde > 0,05 verwijderen, krijgen we het onderstaande resultaat (links).

ModellenVergelijken

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 features. P-waarden geven het vertrouwen weer: met meer data wordt het eenvoudiger om echt invloedrijke features van ruis te onderscheiden.

Hoe verwijder je slechte features?

Verwijder eenvoudigweg de kolom die bij de feature 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, gebruik je:

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

En maak vervolgens een nieuw OLS-object aan met het bijgewerkte X_tilde:

regression_model=sm.OLS(y, X_tilde)

1. Welke van de features moet je BEHOUDEN?

2. Kies de ONJUISTE uitspraak.

question mark

Welke van de features moet je BEHOUDEN?

Selecteer alle juiste antwoorden

question mark

Kies de ONJUISTE uitspraak.

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 4

Vraag AI

expand

Vraag AI

ChatGPT

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

Het Kiezen van de Kenmerken

Bij het werken met veel features weet je vaak niet welke belangrijk zijn. Je kunt een model trainen met allemaal, controleren welke features niet behulpzaam zijn en vervolgens opnieuw trainen met alleen de invloedrijke features.

GoedeSlechteFeatures

Waarom features uit het model verwijderen?

Het toevoegen van een feature die niet gerelateerd is aan de target introduceert ruis en verslechtert de voorspellingen. Veel nutteloze features stapelen ruis op en verminderen de modelkwaliteit verder.

Hoe weet je of de features goed of slecht zijn?

OLS biedt statistische tests tijdens de training. Elke feature krijgt een t-testresultaat, weergegeven in de summary()-tabel, dat aangeeft of deze een significante invloed heeft op de target.

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

Waar we in geïnteresseerd zijn, is de p-waarde voor elke feature.

p-waarden

Kortom, hoe lager de p-waarde, hoe groter het vertrouwen dat het kenmerk invloedrijk is

voorbeeld van p-waarden

In de statistiek stellen we een significantieniveau in, meestal 0,05. Als de p-waarde van een feature deze drempel overschrijdt, wordt deze 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 feature. Maar als de p-waarde erg hoog is (>0,4), kun je deze met vertrouwen verwijderen.

Note
Opmerking

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 de lengte van de moeder en de constante van respectievelijk 0,087 en 0,051. Als we kenmerken met een p-waarde > 0,05 verwijderen, krijgen we het onderstaande resultaat (links).

ModellenVergelijken

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 features. P-waarden geven het vertrouwen weer: met meer data wordt het eenvoudiger om echt invloedrijke features van ruis te onderscheiden.

Hoe verwijder je slechte features?

Verwijder eenvoudigweg de kolom die bij de feature 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, gebruik je:

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

En maak vervolgens een nieuw OLS-object aan met het bijgewerkte X_tilde:

regression_model=sm.OLS(y, X_tilde)
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 4
some-alt