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
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
Bygga 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

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
Bygga 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
some-alt