Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Bygga Multipel Linjär Regression | Multipel Linjär Regression
Linjär Regression med Python

bookBygga Multipel Linjär Regression

OLS-klassen möjliggör att bygga multipel linjär regression på samma sätt som enkel linjär regression. Tyvärr hanterar dock inte funktionen np.polyfit() fallet med flera variabler.

Vi kommer att använda OLS-klassen.

Bygga X̃-matrisen

Vi har samma dataset som i exemplet med enkel linjär regression, men nu finns även moderns längd som den andra variabeln. Vi laddar in det och tittar på dess X-variabel:

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 # Assign the variables X = df[['Father', 'Mother']] y = df['Height'] print(X.head())
copy

Kom ihåg att vi bör använda OLS(y, X_tilde) för att initiera OLS-objektet. Som du kan se innehåller variabeln X redan två egenskaper i separata kolumner. För att få X_tilde behöver vi därför bara lägga till 1:or som första kolumn. Funktionen sm.add_constant(X) gör exakt detta!

1234567891011
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 # Assign the variables X = df[['Father', 'Mother']] y = df['Height'] # Create X_tilde X_tilde = sm.add_constant(X) print(X_tilde.head())
copy

Hitta parametrarna

Utmärkt! Nu kan vi bygga modellen, hitta parametrarna och göra förutsägelser på samma sätt som vi gjorde i föregående avsnitt.

12345678910111213141516171819202122
import 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)
copy
Note
Notera

Nu när vårt träningsset har 2 variabler behöver vi ange 2 variabler för varje ny instans vi vill förutsäga. Det är därför np.array([[65, 62],[70, 65],[75, 70]]) användes i exemplet ovan. Det förutsäger y för 3 nya instanser: [Father:65,Mother:62], [Father:70, Mother:65], [Father:75, Mother:70].

question mark

Vad gör sm.add_constant(X)?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 3

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

Suggested prompts:

Ställ mig frågor om detta ämne

Sammanfatta detta kapitel

Visa verkliga exempel

Awesome!

Completion rate improved to 5.26

bookBygga Multipel Linjär Regression

Svep för att visa menyn

OLS-klassen möjliggör att bygga multipel linjär regression på samma sätt som enkel linjär regression. Tyvärr hanterar dock inte funktionen np.polyfit() fallet med flera variabler.

Vi kommer att använda OLS-klassen.

Bygga X̃-matrisen

Vi har samma dataset som i exemplet med enkel linjär regression, men nu finns även moderns längd som den andra variabeln. Vi laddar in det och tittar på dess X-variabel:

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 # Assign the variables X = df[['Father', 'Mother']] y = df['Height'] print(X.head())
copy

Kom ihåg att vi bör använda OLS(y, X_tilde) för att initiera OLS-objektet. Som du kan se innehåller variabeln X redan två egenskaper i separata kolumner. För att få X_tilde behöver vi därför bara lägga till 1:or som första kolumn. Funktionen sm.add_constant(X) gör exakt detta!

1234567891011
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 # Assign the variables X = df[['Father', 'Mother']] y = df['Height'] # Create X_tilde X_tilde = sm.add_constant(X) print(X_tilde.head())
copy

Hitta parametrarna

Utmärkt! Nu kan vi bygga modellen, hitta parametrarna och göra förutsägelser på samma sätt som vi gjorde i föregående avsnitt.

12345678910111213141516171819202122
import 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)
copy
Note
Notera

Nu när vårt träningsset har 2 variabler behöver vi ange 2 variabler för varje ny instans vi vill förutsäga. Det är därför np.array([[65, 62],[70, 65],[75, 70]]) användes i exemplet ovan. Det förutsäger y för 3 nya instanser: [Father:65,Mother:62], [Father:70, Mother:65], [Father:75, Mother:70].

question mark

Vad gör sm.add_constant(X)?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 3
some-alt