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

Välja Funktionerna

Svep för att visa menyn

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

BraDåligaFunktioner

Varför ta bort funktioner från modellen?

Att lägga till en funktion som inte är relaterad till målet introducerar brus och försämrar förutsägelserna. Många värdelösa funktioner staplar brus och minskar modellens kvalitet ytterligare.

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

OLS tillhandahåller statistiska tester under träningen. Varje funktion får ett t-testresultat, som visas i tabellen summary(), vilket indikerar om den har en signifikant påverkan 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

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

p-värden

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

exempel på p-värden

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 gott samvete.

Note
Notera

p-värdet 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 Mother's height 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).

JämföraModeller

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

Note
Notering

Små dataset ger ofta högre p-värden (0,05–0,2) även för betydelsefulla 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 dåliga variabler?

Ta helt enkelt bort kolumnen som är kopplad till 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)

Och 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?

Välj alla rätta svar

question mark

Välj det FELAKTIGA påståendet.

Vänligen välj det korrekta svaret

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

Välja Funktionerna

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

BraDåligaFunktioner

Varför ta bort funktioner från modellen?

Att lägga till en funktion som inte är relaterad till målet introducerar brus och försämrar förutsägelserna. Många värdelösa funktioner staplar brus och minskar modellens kvalitet ytterligare.

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

OLS tillhandahåller statistiska tester under träningen. Varje funktion får ett t-testresultat, som visas i tabellen summary(), vilket indikerar om den har en signifikant påverkan 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

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

p-värden

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

exempel på p-värden

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 gott samvete.

Note
Notera

p-värdet 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 Mother's height 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).

JämföraModeller

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

Note
Notering

Små dataset ger ofta högre p-värden (0,05–0,2) även för betydelsefulla 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 dåliga variabler?

Ta helt enkelt bort kolumnen som är kopplad till 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)

Och skapa sedan ett nytt OLS-objekt med den uppdaterade X_tilde:

regression_model=sm.OLS(y, X_tilde)
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 4
some-alt