Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Monimuuttujaisen Lineaarisen Regressiomallin Rakentaminen | Monimuuttujainen Lineaarinen Regressio
Lineaarinen Regressio Pythonilla
course content

Kurssisisältö

Lineaarinen Regressio Pythonilla

Lineaarinen Regressio Pythonilla

1. Yksinkertainen Lineaarinen Regressio
2. Monimuuttujainen Lineaarinen Regressio
3. Polynomiregressio
4. Parhaan Mallin Valitseminen

book
Monimuuttujaisen Lineaarisen Regressiomallin Rakentaminen

OLS-luokka mahdollistaa moninkertaisen lineaarisen regressiomallin rakentamisen samalla tavalla kuin yksinkertaisen lineaarisen regressiomallin. Valitettavasti np.polyfit()-funktio ei kuitenkaan tue usean muuttujan tapausta.

Käytämme siis OLS-luokkaa.

X̃-matriisin rakentaminen

Meillä on sama aineisto kuin yksinkertaisen lineaarisen regressiomallin esimerkissä, mutta nyt mukana on äidin pituus toisena muuttujana. Lataamme aineiston ja tarkastelemme sen X-muuttujaa:

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

Muista, että meidän tulisi käyttää OLS(y, X_tilde) alustamaan OLS-objekti. Kuten huomaat, X-muuttuja sisältää jo kaksi ominaisuutta erillisissä sarakkeissa. Jotta saadaan X_tilde, tarvitsee vain lisätä 1:t ensimmäiseksi sarakkeeksi. Funktio sm.add_constant(X) tekee juuri tämän!

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

Parametrien löytäminen

Hienoa! Nyt voimme rakentaa mallin, löytää parametrit ja tehdä ennusteita samalla tavalla kuin edellisessä osiossa.

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
Huomio

Nyt kun opetusjoukossamme on 2 piirrettä, meidän täytyy antaa 2 piirre-arvoa jokaiselle uudelle havainnolle, jolle haluamme tehdä ennusteen. Siksi esimerkissä yllä käytettiin np.array([[65, 62],[70, 65],[75, 70]]). Se ennustaa y kolmelle uudelle havainnolle: [Father:65,Mother:62], [Father:70, Mother:65], [Father:75, Mother:70].

question mark

Mitä sm.add_constant(X) tekee?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

course content

Kurssisisältö

Lineaarinen Regressio Pythonilla

Lineaarinen Regressio Pythonilla

1. Yksinkertainen Lineaarinen Regressio
2. Monimuuttujainen Lineaarinen Regressio
3. Polynomiregressio
4. Parhaan Mallin Valitseminen

book
Monimuuttujaisen Lineaarisen Regressiomallin Rakentaminen

OLS-luokka mahdollistaa moninkertaisen lineaarisen regressiomallin rakentamisen samalla tavalla kuin yksinkertaisen lineaarisen regressiomallin. Valitettavasti np.polyfit()-funktio ei kuitenkaan tue usean muuttujan tapausta.

Käytämme siis OLS-luokkaa.

X̃-matriisin rakentaminen

Meillä on sama aineisto kuin yksinkertaisen lineaarisen regressiomallin esimerkissä, mutta nyt mukana on äidin pituus toisena muuttujana. Lataamme aineiston ja tarkastelemme sen X-muuttujaa:

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

Muista, että meidän tulisi käyttää OLS(y, X_tilde) alustamaan OLS-objekti. Kuten huomaat, X-muuttuja sisältää jo kaksi ominaisuutta erillisissä sarakkeissa. Jotta saadaan X_tilde, tarvitsee vain lisätä 1:t ensimmäiseksi sarakkeeksi. Funktio sm.add_constant(X) tekee juuri tämän!

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

Parametrien löytäminen

Hienoa! Nyt voimme rakentaa mallin, löytää parametrit ja tehdä ennusteita samalla tavalla kuin edellisessä osiossa.

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
Huomio

Nyt kun opetusjoukossamme on 2 piirrettä, meidän täytyy antaa 2 piirre-arvoa jokaiselle uudelle havainnolle, jolle haluamme tehdä ennusteen. Siksi esimerkissä yllä käytettiin np.array([[65, 62],[70, 65],[75, 70]]). Se ennustaa y kolmelle uudelle havainnolle: [Father:65,Mother:62], [Father:70, Mother:65], [Father:75, Mother:70].

question mark

Mitä sm.add_constant(X) tekee?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 3
some-alt