Velge Funksjonene
Sveip for å vise menyen
Når du arbeider med mange funksjoner, vet du ofte ikke hvilke som er viktige. Du kan trene en modell med alle, sjekke hvilke funksjoner som ikke er nyttige, og deretter trene på nytt med kun de som har betydning.
Hvorfor fjerne funksjoner fra modellen?
Å legge til en funksjon som ikke er relatert til målet, introduserer støy og forverrer prediksjonene. Mange unyttige funksjoner øker støyen og reduserer modellens kvalitet ytterligere.
Hvordan vite om egenskapene er gode eller dårlige?
OLS gir statistiske tester under treningen. Hver egenskap får et t-test-resultat, vist i summary()-tabellen, som indikerer om den har en signifikant effekt på målet.
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 er interessert i, er p-verdien for hver egenskap.
Kort sagt, jo lavere p-verdi, desto høyere tillit til at egenskapen har betydning
I statistikk setter vi et signifikansnivå, vanligvis 0,05. Hvis en egenskaps p-verdi overstiger denne terskelen, anses den som ikke innflytelsesrik.
I praksis kan litt høyere p-verdier (rett over 0,05) fortsatt være nyttige for modellen. Det er tryggere å teste modellen både med og uten en slik egenskap. Men hvis p-verdien er svært høy (>0,4), kan du trygt fjerne den.
p-verdi varierer fra 0 til 1, så når vi snakker om lav p-verdi mener vi mindre enn 0,05 og høy p-verdi betyr vanligvis større enn 0,3-0,5.
I vårt eksempel fikk vi p-verdier for Mother's height og konstant 0,087 og 0,051. Hvis vi fjerner variabler med en p-verdi > 0,05, får vi resultatet nedenfor (til venstre).
Selv visuelt kan vi se at modellen med konstant (til høyre) er bedre, så det er best å ikke fjerne den fra modellen.
Små datasett gir ofte høyere p-verdier (0,05–0,2) selv for meningsfulle egenskaper. P-verdier gjenspeiler sikkerhet: med mer data blir det lettere å skille virkelig betydningsfulle egenskaper fra støyende.
Hvordan fjerne dårlige egenskaper?
Du trenger bare å fjerne kolonnen som er relatert til egenskapen fra X_tilde. Dette kan gjøres med følgende kode:
X_tilde = X_tilde.drop(___, axis=1)
For eksempel, for å fjerne kolonnene 'const' og 'Mother' bruker du:
X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)
Og deretter opprette et nytt OLS-objekt ved å bruke oppdatert X_tilde:
regression_model=sm.OLS(y, X_tilde)
1. Hvilke av egenskapene bør beholdes?
2. Velg den FEILAKTIGE påstanden.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår