Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Välja Funktionerna | Multipel Linjär Regression
Linjär Regression med Python

bookVälja Funktionerna

När du arbetar med många variabler vet du ofta inte vilka som är viktiga. Du kan träna en modell med alla, kontrollera vilka variabler som är oanvändbara och sedan träna om modellen med endast de betydelsefulla.

Varför ta bort variabler från modellen?

Att lägga till en variabel som inte är relaterad till målet introducerar brus och försämrar förutsägelserna. Många oanvändbara variabler staplar brus och minskar modellens kvalitet ytterligare.

Hur vet man om variablerna är bra eller dåliga?

OLS tillhandahåller statistiska tester under träningen. Varje variabel får ett t-testresultat, som visas i summary()-tabellen, vilket indikerar om den har en signifikant effekt på målet.

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
copy

Det vi är intresserade av är p-värdet för varje variabel.

Kortfattat, ju lägre p-värde desto högre tillförlitlighet att variabeln har betydelse.

Inom statistiken sätter vi en signifikansnivå, vanligtvis 0,05. Om ett attributs p-värde överstiger denna tröskel anses det inte vara betydelsefullt.

I praktiken kan något högre p-värden (strax över 0,05) fortfarande bidra till modellen. Det är säkrare att testa modellen både med och utan ett sådant attribut. Men om p-värdet är mycket högt (>0,4) kan det tas bort med säkerhet.

Note
Notering

p-värde varierar mellan 0 och 1, så när vi talar om lågt p-värde menar vi mindre än 0,05 och högt p-värde betyder vanligtvis större än 0,3-0,5.

I vårt exempel fick vi p-värden för moderns längd och konstanten 0,087 respektive 0,051. Om vi tar bort variabler med ett p-värde > 0,05 får vi resultatet nedan (till vänster).

Även visuellt kan vi se att modellen med konstanten (till höger) är bättre, så det är bättre att inte ta bort den från modellen.

Note
Notering

Små datamängder ger ofta högre p-värden (0,05–0,2) även för meningsfulla variabler. P-värden återspeglar säkerhet: med mer data blir det lättare att särskilja verkligt betydelsefulla variabler från brusiga.

Hur tar man bort olämpliga variabler?

Ta bort kolumnen som motsvarar variabeln från X_tilde. Detta kan göras med följande kod:

X_tilde = X_tilde.drop(___, axis=1)

Till exempel, för att ta bort kolumnerna 'const' och 'Mother' används:

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

Skapa sedan ett nytt OLS-objekt med den uppdaterade X_tilde:

regression_model=sm.OLS(y, X_tilde)

1. Vilka av funktionerna bör du BEHÅLLA?

2. Välj det FELAKTIGA påståendet.

question mark

Vilka av funktionerna bör du BEHÅLLA?

Select the correct answer

question mark

Välj det FELAKTIGA påståendet.

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 4

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 5.26

bookVälja Funktionerna

Svep för att visa menyn

När du arbetar med många variabler vet du ofta inte vilka som är viktiga. Du kan träna en modell med alla, kontrollera vilka variabler som är oanvändbara och sedan träna om modellen med endast de betydelsefulla.

Varför ta bort variabler från modellen?

Att lägga till en variabel som inte är relaterad till målet introducerar brus och försämrar förutsägelserna. Många oanvändbara variabler staplar brus och minskar modellens kvalitet ytterligare.

Hur vet man om variablerna är bra eller dåliga?

OLS tillhandahåller statistiska tester under träningen. Varje variabel får ett t-testresultat, som visas i summary()-tabellen, vilket indikerar om den har en signifikant effekt på målet.

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
copy

Det vi är intresserade av är p-värdet för varje variabel.

Kortfattat, ju lägre p-värde desto högre tillförlitlighet att variabeln har betydelse.

Inom statistiken sätter vi en signifikansnivå, vanligtvis 0,05. Om ett attributs p-värde överstiger denna tröskel anses det inte vara betydelsefullt.

I praktiken kan något högre p-värden (strax över 0,05) fortfarande bidra till modellen. Det är säkrare att testa modellen både med och utan ett sådant attribut. Men om p-värdet är mycket högt (>0,4) kan det tas bort med säkerhet.

Note
Notering

p-värde varierar mellan 0 och 1, så när vi talar om lågt p-värde menar vi mindre än 0,05 och högt p-värde betyder vanligtvis större än 0,3-0,5.

I vårt exempel fick vi p-värden för moderns längd och konstanten 0,087 respektive 0,051. Om vi tar bort variabler med ett p-värde > 0,05 får vi resultatet nedan (till vänster).

Även visuellt kan vi se att modellen med konstanten (till höger) är bättre, så det är bättre att inte ta bort den från modellen.

Note
Notering

Små datamängder ger ofta högre p-värden (0,05–0,2) även för meningsfulla variabler. P-värden återspeglar säkerhet: med mer data blir det lättare att särskilja verkligt betydelsefulla variabler från brusiga.

Hur tar man bort olämpliga variabler?

Ta bort kolumnen som motsvarar variabeln från X_tilde. Detta kan göras med följande kod:

X_tilde = X_tilde.drop(___, axis=1)

Till exempel, för att ta bort kolumnerna 'const' och 'Mother' används:

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

Skapa sedan ett nytt OLS-objekt med den uppdaterade X_tilde:

regression_model=sm.OLS(y, X_tilde)

1. Vilka av funktionerna bör du BEHÅLLA?

2. Välj det FELAKTIGA påståendet.

question mark

Vilka av funktionerna bör du BEHÅLLA?

Select the correct answer

question mark

Välj det FELAKTIGA påståendet.

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 4
some-alt