Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Lineaarisen Regressiomallin Rakentaminen Statsmodels-Kirjastolla | Yksinkertainen 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
Lineaarisen Regressiomallin Rakentaminen Statsmodels-Kirjastolla

Edellisessä luvussa käytimme NumPyn funktiota parametrien laskemiseen.
Nyt käytämme funktiokutsun sijaan luokkaoliota lineaarisen regressiomallin esittämiseen. Tämä lähestymistapa vaatii enemmän koodirivejä parametrien löytämiseksi, mutta se tallentaa paljon hyödyllistä tietoa olion sisään ja tekee ennustamisesta suoraviivaisempaa.

Lineaarisen regressiomallin rakentaminen

Statsmodels-kirjastossa OLS-luokkaa voidaan käyttää lineaarisen regressiomallin luomiseen.

Ensin täytyy alustaa OLS-luokan olio käyttämällä sm.OLS(y, X_tilde). Tämän jälkeen malli opetetaan fit()-metodilla.

model = sm.OLS(y, X_tilde)
model = model.fit()

Mikä on sama kuin:

model = sm.OLS(y, X_tilde).fit()
Note
Huomio

OLS-luokan konstruktori odottaa tiettyä taulukkoa X_tilde syötteenä, kuten näimme normaaliyhtälössä. Siksi sinun täytyy muuntaa X-taulukkosi muotoon X_tilde. Tämä onnistuu käyttämällä funktiota sm.add_constant().

Parametrien löytäminen

Kun malli on opetettu, voit helposti tarkastella parametreja params-attribuutin avulla.

12345678910111213141516
import statsmodels.api as sm # import statsmodels import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Open the file X, y = df['Father'], df['Height'] # Assign the variables # Get the correct form of input for OLS X_tilde = sm.add_constant(X) # 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 = regression_model.params print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1)
copy

Ennusteiden tekeminen

Uusien havaintojen ennustaminen onnistuu helposti predict()-metodilla, mutta myös näiden syötteet täytyy esikäsitellä:

1234567891011121314151617
import statsmodels.api as sm import pandas as pd import numpy as np file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Open the file X, y = df['Father'], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Preprocess regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Predict new values X_new = np.array([65,70,75]) # 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(y_pred)
copy

Yhteenvetotietojen hakeminen

Kuten olet ehkä huomannut, OLS-luokan käyttö ei ole yhtä suoraviivaista kuin polyfit()-funktion. OLS:n käytössä on kuitenkin etunsa. Mallin koulutuksen aikana lasketaan paljon tilastollista tietoa. Näihin tietoihin pääsee käsiksi summary()-metodin avulla.

123456789101112
import statsmodels.api as sm import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file X, y = df['Father'], df['Height'] X_tilde = sm.add_constant(X) # Preprocess X regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Print the summary print(regression_model.summary())
copy

Tämä on paljon tilastotietoa. Käsittelemme taulukon tärkeimmät osat myöhemmissä osioissa.

question mark

Valitse VÄÄRÄ väittämä.

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 4

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
Lineaarisen Regressiomallin Rakentaminen Statsmodels-Kirjastolla

Edellisessä luvussa käytimme NumPyn funktiota parametrien laskemiseen.
Nyt käytämme funktiokutsun sijaan luokkaoliota lineaarisen regressiomallin esittämiseen. Tämä lähestymistapa vaatii enemmän koodirivejä parametrien löytämiseksi, mutta se tallentaa paljon hyödyllistä tietoa olion sisään ja tekee ennustamisesta suoraviivaisempaa.

Lineaarisen regressiomallin rakentaminen

Statsmodels-kirjastossa OLS-luokkaa voidaan käyttää lineaarisen regressiomallin luomiseen.

Ensin täytyy alustaa OLS-luokan olio käyttämällä sm.OLS(y, X_tilde). Tämän jälkeen malli opetetaan fit()-metodilla.

model = sm.OLS(y, X_tilde)
model = model.fit()

Mikä on sama kuin:

model = sm.OLS(y, X_tilde).fit()
Note
Huomio

OLS-luokan konstruktori odottaa tiettyä taulukkoa X_tilde syötteenä, kuten näimme normaaliyhtälössä. Siksi sinun täytyy muuntaa X-taulukkosi muotoon X_tilde. Tämä onnistuu käyttämällä funktiota sm.add_constant().

Parametrien löytäminen

Kun malli on opetettu, voit helposti tarkastella parametreja params-attribuutin avulla.

12345678910111213141516
import statsmodels.api as sm # import statsmodels import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Open the file X, y = df['Father'], df['Height'] # Assign the variables # Get the correct form of input for OLS X_tilde = sm.add_constant(X) # 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 = regression_model.params print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1)
copy

Ennusteiden tekeminen

Uusien havaintojen ennustaminen onnistuu helposti predict()-metodilla, mutta myös näiden syötteet täytyy esikäsitellä:

1234567891011121314151617
import statsmodels.api as sm import pandas as pd import numpy as np file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Open the file X, y = df['Father'], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Preprocess regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Predict new values X_new = np.array([65,70,75]) # 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(y_pred)
copy

Yhteenvetotietojen hakeminen

Kuten olet ehkä huomannut, OLS-luokan käyttö ei ole yhtä suoraviivaista kuin polyfit()-funktion. OLS:n käytössä on kuitenkin etunsa. Mallin koulutuksen aikana lasketaan paljon tilastollista tietoa. Näihin tietoihin pääsee käsiksi summary()-metodin avulla.

123456789101112
import statsmodels.api as sm import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file X, y = df['Father'], df['Height'] X_tilde = sm.add_constant(X) # Preprocess X regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Print the summary print(regression_model.summary())
copy

Tämä on paljon tilastotietoa. Käsittelemme taulukon tärkeimmät osat myöhemmissä osioissa.

question mark

Valitse VÄÄRÄ väittämä.

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 4
some-alt