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
course content

Kursinnehåll

Linjär Regression med Python

Linjär Regression med Python

1. Enkel Linjär Regression
2. Multipel Linjär Regression
3. Polynomregression
4. Välja Den Bästa Modellen

book
Välja Funktionerna

I många uppgifter kan du ha många variabler som du inte vet om de är användbara eller inte. Som tur är kan du träna en modell med alla dessa, se vilka som inte har någon påverkan och sedan träna om modellen med endast de som är betydelsefulla.

Varför ta bort variabler från modellen?

Om du lägger till en variabel i modellen som inte har någon relation till målet, kommer det att skapa brus i modellen och försämra prediktionen. När du har många oanvändbara variabler kommer bruset att öka, vilket gör att modellen presterar allt sämre.

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

Som du redan vet beräknar OLS-klassen statistisk information under träningen. Bland annat utförs ett t-test för att avgöra om varje variabel har en signifikant påverkan på målet. Resultaten av testet finns i summary()-tabellen som visas nedan:

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.

Kort sagt, ju lägre p-värde desto högre tilltro till att variabeln har betydelse.

Inom statistiken behöver vi fastställa tröskelvärdet för p-värdet, kallat signifikansnivå. Det sätts vanligtvis till 0,05, och när p-värdet är större än denna signifikansnivå betraktas egenskapen som icke-påverkande.

I praktiken förbättrar dock ofta egenskaper med något högre p-värde än 0,05 också modellen. Det är därför bättre att testa modellen med och utan denna egenskap istället för att omedelbart ta bort den, såvida den inte har ett mycket högt p-värde (>0,4). I sådana fall kan egenskapen tas bort utan risk.

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 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 konstant (till höger) är bättre, så det är bättre att inte ta bort den från modellen.

Note
Notera

Det är vanligt att få relativt höga p-värden (0,05 till 0,2) för betydelsefulla variabler när datamängden är liten. P-värdet visar hur säkra vi är på att variabeln är betydelsefull, och det är naturligt att ju fler observationer vi har, desto lättare är det att skilja på betydelsefulla och obetydliga variabler. Anta att du har data som visar att 9/10 av långa personer du känner åt äpplen dagligen. Kan du vara säker på att det finns ett samband? Men om det istället var 9000/10000? Det skulle göra dig mer säker.

Hur tar man bort dåliga variabler?

Du behöver bara ta bort kolumnen som är relaterad 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änder du:

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 BEHÅLLAS?

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

question mark

Vilka av funktionerna bör BEHÅLLAS?

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

course content

Kursinnehåll

Linjär Regression med Python

Linjär Regression med Python

1. Enkel Linjär Regression
2. Multipel Linjär Regression
3. Polynomregression
4. Välja Den Bästa Modellen

book
Välja Funktionerna

I många uppgifter kan du ha många variabler som du inte vet om de är användbara eller inte. Som tur är kan du träna en modell med alla dessa, se vilka som inte har någon påverkan och sedan träna om modellen med endast de som är betydelsefulla.

Varför ta bort variabler från modellen?

Om du lägger till en variabel i modellen som inte har någon relation till målet, kommer det att skapa brus i modellen och försämra prediktionen. När du har många oanvändbara variabler kommer bruset att öka, vilket gör att modellen presterar allt sämre.

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

Som du redan vet beräknar OLS-klassen statistisk information under träningen. Bland annat utförs ett t-test för att avgöra om varje variabel har en signifikant påverkan på målet. Resultaten av testet finns i summary()-tabellen som visas nedan:

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.

Kort sagt, ju lägre p-värde desto högre tilltro till att variabeln har betydelse.

Inom statistiken behöver vi fastställa tröskelvärdet för p-värdet, kallat signifikansnivå. Det sätts vanligtvis till 0,05, och när p-värdet är större än denna signifikansnivå betraktas egenskapen som icke-påverkande.

I praktiken förbättrar dock ofta egenskaper med något högre p-värde än 0,05 också modellen. Det är därför bättre att testa modellen med och utan denna egenskap istället för att omedelbart ta bort den, såvida den inte har ett mycket högt p-värde (>0,4). I sådana fall kan egenskapen tas bort utan risk.

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 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 konstant (till höger) är bättre, så det är bättre att inte ta bort den från modellen.

Note
Notera

Det är vanligt att få relativt höga p-värden (0,05 till 0,2) för betydelsefulla variabler när datamängden är liten. P-värdet visar hur säkra vi är på att variabeln är betydelsefull, och det är naturligt att ju fler observationer vi har, desto lättare är det att skilja på betydelsefulla och obetydliga variabler. Anta att du har data som visar att 9/10 av långa personer du känner åt äpplen dagligen. Kan du vara säker på att det finns ett samband? Men om det istället var 9000/10000? Det skulle göra dig mer säker.

Hur tar man bort dåliga variabler?

Du behöver bara ta bort kolumnen som är relaterad 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änder du:

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 BEHÅLLAS?

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

question mark

Vilka av funktionerna bör BEHÅLLAS?

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