Opbygning af Multipel Lineær Regression
OLS
-klassen gør det muligt at opbygge multipel lineær regression på samme måde som simpel lineær regression. Desværre håndterer funktionen np.polyfit()
ikke tilfælde med flere features.
Vi holder os til OLS
-klassen.
Opbygning af X̃-matrix
Vi har det samme datasæt som i eksemplet med simpel lineær regression, men det indeholder nu moderens højde som den anden feature. Vi indlæser det og ser på dets X
-variabel:
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 # Assign the variables X = df[['Father', 'Mother']] y = df['Height'] print(X.head())
Husk, vi skal bruge OLS(y, X_tilde)
for at initialisere OLS
-objektet. Som du kan se, indeholder X-variablen allerede to features i separate kolonner. For at få X_tilde skal vi blot tilføje 1-taller som den første kolonne. Funktionen sm.add_constant(X)
gør netop dette!
1234567891011import 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 # Assign the variables X = df[['Father', 'Mother']] y = df['Height'] # Create X_tilde X_tilde = sm.add_constant(X) print(X_tilde.head())
Find parametrene
Fremragende! Nu kan vi opbygge modellen, finde parametrene og lave forudsigelser på samme måde som i det forrige afsnit.
12345678910111213141516171819202122import pandas as pd import statsmodels.api as sm import numpy as np 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 # Initialize an OLS object regression_model = sm.OLS(y, X_tilde) # Train the object regression_model = regression_model.fit() # Get the paramters beta_0, beta_1, beta_2 = regression_model.params print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1) print('beta_2 is: ', beta_2) # Predict new values X_new = np.array([[65, 62],[70, 65],[75, 70]]) # Feature values of new instances X_new_tilde = sm.add_constant(X_new) # Preprocess X_new y_pred = regression_model.predict(X_new_tilde) # Predict the target print('Predictions:', y_pred)
Nu hvor vores træningssæt har 2 features, skal vi angive 2 features for hver ny observation, vi ønsker at forudsige. Derfor blev np.array([[65, 62],[70, 65],[75, 70]])
brugt i eksemplet ovenfor. Det forudsiger y
for 3 nye observationer: [Father:65,Mother:62]
, [Father:70, Mother:65]
, [Father:75, Mother:70]
.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain what the X_tilde matrix represents in multiple linear regression?
How does sm.add_constant(X) work and why is it necessary?
What do the beta_0, beta_1, and beta_2 parameters mean in this context?
Awesome!
Completion rate improved to 5.26
Opbygning af Multipel Lineær Regression
Stryg for at vise menuen
OLS
-klassen gør det muligt at opbygge multipel lineær regression på samme måde som simpel lineær regression. Desværre håndterer funktionen np.polyfit()
ikke tilfælde med flere features.
Vi holder os til OLS
-klassen.
Opbygning af X̃-matrix
Vi har det samme datasæt som i eksemplet med simpel lineær regression, men det indeholder nu moderens højde som den anden feature. Vi indlæser det og ser på dets X
-variabel:
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 # Assign the variables X = df[['Father', 'Mother']] y = df['Height'] print(X.head())
Husk, vi skal bruge OLS(y, X_tilde)
for at initialisere OLS
-objektet. Som du kan se, indeholder X-variablen allerede to features i separate kolonner. For at få X_tilde skal vi blot tilføje 1-taller som den første kolonne. Funktionen sm.add_constant(X)
gør netop dette!
1234567891011import 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 # Assign the variables X = df[['Father', 'Mother']] y = df['Height'] # Create X_tilde X_tilde = sm.add_constant(X) print(X_tilde.head())
Find parametrene
Fremragende! Nu kan vi opbygge modellen, finde parametrene og lave forudsigelser på samme måde som i det forrige afsnit.
12345678910111213141516171819202122import pandas as pd import statsmodels.api as sm import numpy as np 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 # Initialize an OLS object regression_model = sm.OLS(y, X_tilde) # Train the object regression_model = regression_model.fit() # Get the paramters beta_0, beta_1, beta_2 = regression_model.params print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1) print('beta_2 is: ', beta_2) # Predict new values X_new = np.array([[65, 62],[70, 65],[75, 70]]) # Feature values of new instances X_new_tilde = sm.add_constant(X_new) # Preprocess X_new y_pred = regression_model.predict(X_new_tilde) # Predict the target print('Predictions:', y_pred)
Nu hvor vores træningssæt har 2 features, skal vi angive 2 features for hver ny observation, vi ønsker at forudsige. Derfor blev np.array([[65, 62],[70, 65],[75, 70]])
brugt i eksemplet ovenfor. Det forudsiger y
for 3 nye observationer: [Father:65,Mother:62]
, [Father:70, Mother:65]
, [Father:75, Mother:70]
.
Tak for dine kommentarer!