Lineaarisen Regressiomallin Rakentaminen Käyttäen Statsmodels-Kirjastoa
Edellisessä luvussa käytettiin NumPy-kirjaston funktiota parametrien laskemiseen.
Nyt käytetään luokkaoliota funktion sijaan 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älle 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ä vastaa seuraavaa:
model = sm.OLS(y, X_tilde).fit()
OLS
-luokan konstruktori odottaa tiettyä taulukkoa X_tilde
syötteenä, kuten nähtiin normaaliyhtälössä. Siksi sinun täytyy muuntaa X
-taulukko muotoon X_tilde
. Tämä onnistuu käyttämällä sm.add_constant()
-funktiota.
Parametrien löytäminen
Kun malli on opetettu, parametreihin pääsee helposti käsiksi params
-attribuutin avulla.
12345678910111213141516import 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)
Ennusteiden tekeminen
Uusien havaintojen ennustaminen onnistuu helposti predict()
-metodilla, mutta myös näiden syötteet täytyy esikäsitellä:
1234567891011121314151617import 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)
Yhteenvetotietojen hakeminen
Kuten olet ehkä huomannut, OLS
-luokan käyttö ei ole yhtä helppoa kuin polyfit()
-funktion. OLS
:n käytöllä on kuitenkin etunsa. Mallin koulutuksen aikana lasketaan paljon tilastollista tietoa. Näihin tietoihin pääsee käsiksi summary()
-metodin avulla.
123456789101112import 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())
Tässä on paljon tilastotietoa. Käsittelemme taulukon tärkeimmät osat myöhemmissä osioissa.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 5.26
Lineaarisen Regressiomallin Rakentaminen Käyttäen Statsmodels-Kirjastoa
Pyyhkäise näyttääksesi valikon
Edellisessä luvussa käytettiin NumPy-kirjaston funktiota parametrien laskemiseen.
Nyt käytetään luokkaoliota funktion sijaan 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älle 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ä vastaa seuraavaa:
model = sm.OLS(y, X_tilde).fit()
OLS
-luokan konstruktori odottaa tiettyä taulukkoa X_tilde
syötteenä, kuten nähtiin normaaliyhtälössä. Siksi sinun täytyy muuntaa X
-taulukko muotoon X_tilde
. Tämä onnistuu käyttämällä sm.add_constant()
-funktiota.
Parametrien löytäminen
Kun malli on opetettu, parametreihin pääsee helposti käsiksi params
-attribuutin avulla.
12345678910111213141516import 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)
Ennusteiden tekeminen
Uusien havaintojen ennustaminen onnistuu helposti predict()
-metodilla, mutta myös näiden syötteet täytyy esikäsitellä:
1234567891011121314151617import 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)
Yhteenvetotietojen hakeminen
Kuten olet ehkä huomannut, OLS
-luokan käyttö ei ole yhtä helppoa kuin polyfit()
-funktion. OLS
:n käytöllä on kuitenkin etunsa. Mallin koulutuksen aikana lasketaan paljon tilastollista tietoa. Näihin tietoihin pääsee käsiksi summary()
-metodin avulla.
123456789101112import 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())
Tässä on paljon tilastotietoa. Käsittelemme taulukon tärkeimmät osat myöhemmissä osioissa.
Kiitos palautteestasi!