Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Lineaire Regressie Bouwen Met Behulp Van Statsmodels | Eenvoudige Lineaire Regressie
Lineaire Regressie met Python

bookLineaire Regressie Bouwen Met Behulp Van Statsmodels

In het vorige hoofdstuk gebruikten we een functie van NumPy om de parameters te berekenen.
Nu gebruiken we het klasse-object in plaats van de functie om de lineaire regressie te representeren. Deze benadering vereist meer regels code om de parameters te vinden, maar slaat veel nuttige informatie op in het object en maakt het voorspellen eenvoudiger.

Een lineair regressiemodel bouwen

In statsmodels kan de OLS-klasse worden gebruikt om een lineair regressiemodel te maken.

We moeten eerst een OLS-klasse-object initialiseren met sm.OLS(y, X_tilde). Vervolgens trainen we het met de fit()-methode.

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

Dit is gelijk aan:

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

De constructor van de OLS-klasse verwacht een specifieke array X_tilde als invoer, zoals gezien in de Normale Vergelijking. Daarom moet je jouw X-array omzetten naar X_tilde. Dit kan worden bereikt met de functie sm.add_constant().

Parameters bepalen

Wanneer het model is getraind, zijn de parameters eenvoudig toegankelijk via het attribuut params.

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

Voorspellingen maken

Nieuwe gevallen kunnen eenvoudig worden voorspeld met de methode predict(), maar ook hiervoor moet je de invoer preprocessen:

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

De samenvatting opvragen

Zoals je waarschijnlijk hebt gemerkt, is het gebruik van de OLS-klasse minder eenvoudig dan de functie polyfit(). Maar het gebruik van OLS heeft voordelen. Tijdens het trainen worden veel statistische gegevens berekend. Deze informatie is toegankelijk via de methode summary().

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

Dat zijn veel statistieken. We bespreken de belangrijkste onderdelen van de tabel in latere secties.

question mark

Kies de ONJUISTE uitspraak.

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 4

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

Can you explain what the `add_constant` function does?

What information can I find in the `summary()` output?

How do I interpret the values of `beta_0` and `beta_1`?

Awesome!

Completion rate improved to 5.26

bookLineaire Regressie Bouwen Met Behulp Van Statsmodels

Veeg om het menu te tonen

In het vorige hoofdstuk gebruikten we een functie van NumPy om de parameters te berekenen.
Nu gebruiken we het klasse-object in plaats van de functie om de lineaire regressie te representeren. Deze benadering vereist meer regels code om de parameters te vinden, maar slaat veel nuttige informatie op in het object en maakt het voorspellen eenvoudiger.

Een lineair regressiemodel bouwen

In statsmodels kan de OLS-klasse worden gebruikt om een lineair regressiemodel te maken.

We moeten eerst een OLS-klasse-object initialiseren met sm.OLS(y, X_tilde). Vervolgens trainen we het met de fit()-methode.

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

Dit is gelijk aan:

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

De constructor van de OLS-klasse verwacht een specifieke array X_tilde als invoer, zoals gezien in de Normale Vergelijking. Daarom moet je jouw X-array omzetten naar X_tilde. Dit kan worden bereikt met de functie sm.add_constant().

Parameters bepalen

Wanneer het model is getraind, zijn de parameters eenvoudig toegankelijk via het attribuut params.

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

Voorspellingen maken

Nieuwe gevallen kunnen eenvoudig worden voorspeld met de methode predict(), maar ook hiervoor moet je de invoer preprocessen:

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

De samenvatting opvragen

Zoals je waarschijnlijk hebt gemerkt, is het gebruik van de OLS-klasse minder eenvoudig dan de functie polyfit(). Maar het gebruik van OLS heeft voordelen. Tijdens het trainen worden veel statistische gegevens berekend. Deze informatie is toegankelijk via de methode summary().

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

Dat zijn veel statistieken. We bespreken de belangrijkste onderdelen van de tabel in latere secties.

question mark

Kies de ONJUISTE uitspraak.

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 4
some-alt