Välja Funktionerna
Vid många uppgifter kan du ha många variabler där du inte vet om de är användbara eller inte. Lyckligtvis 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 har påverkan.
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 tabellen summary()
som visas nedan:
123456789import 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 variabel.
Kort sagt, ju lägre p-värde desto högre tillförlitlighet 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å anses variabeln inte vara betydelsefull.
I praktiken förbättrar dock ofta variabler med något högre p-värde än 0,05 också modellen. Det är därför bättre att testa modellen både med och utan denna variabel 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 variabeln tas bort utan risk.
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 innebär 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.
Det är vanligt att få relativt höga p-värden (0,05 till 0,2) för betydelsefulla variabler när datasetet är litet. P-värdet visar hur säker man kan vara på att variabeln är betydelsefull, och det är naturligt att ju fler observationer vi har, desto lättare är det att skilja betydelsefulla variabler från dåliga.
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 detta hänger ihop? Men om det istället var 9000/10000? Det skulle göra dig mer säker.
Hur tar man bort olämpliga variabler?
Ta bort kolumnen som motsvarar variabeln från X_tilde
. Detta görs 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.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
What is a p-value and why is it important in feature selection?
How do I interpret the summary table from the OLS regression?
Can you explain how to decide which features to remove based on p-values?
Awesome!
Completion rate improved to 5.26
Välja Funktionerna
Svep för att visa menyn
Vid många uppgifter kan du ha många variabler där du inte vet om de är användbara eller inte. Lyckligtvis 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 har påverkan.
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 tabellen summary()
som visas nedan:
123456789import 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 variabel.
Kort sagt, ju lägre p-värde desto högre tillförlitlighet 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å anses variabeln inte vara betydelsefull.
I praktiken förbättrar dock ofta variabler med något högre p-värde än 0,05 också modellen. Det är därför bättre att testa modellen både med och utan denna variabel 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 variabeln tas bort utan risk.
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 innebär 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.
Det är vanligt att få relativt höga p-värden (0,05 till 0,2) för betydelsefulla variabler när datasetet är litet. P-värdet visar hur säker man kan vara på att variabeln är betydelsefull, och det är naturligt att ju fler observationer vi har, desto lättare är det att skilja betydelsefulla variabler från dåliga.
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 detta hänger ihop? Men om det istället var 9000/10000? Det skulle göra dig mer säker.
Hur tar man bort olämpliga variabler?
Ta bort kolumnen som motsvarar variabeln från X_tilde
. Detta görs 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.
Tack för dina kommentarer!