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

Cursusinhoud

Lineaire Regressie Met Python

Lineaire Regressie Met Python

1. Eenvoudige Lineaire Regressie
2. Meervoudige Lineaire Regressie
3. Polynomiale Regressie
4. Het Beste Model Kiezen

book
Lineaire Regressie Bouwen Met 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 aanpak 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 model met de fit()-methode.

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

Wat gelijkwaardig is 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 we zagen in de Normale Vergelijking. Daarom moet je je X-array omzetten naar X_tilde. Dit is mogelijk met de functie sm.add_constant().

Parameters vinden

Wanneer het model is getraind, kun je eenvoudig de parameters benaderen 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 instanties kunnen eenvoudig worden voorspeld met de methode predict(), maar je moet de invoer hiervoor ook 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 verkrijgen

Zoals je waarschijnlijk hebt gemerkt, is het gebruik van de OLS-klasse niet zo eenvoudig als de functie polyfit(). Maar het gebruik van OLS heeft zijn voordelen. Tijdens het trainen berekent het veel statistische informatie. Je kunt deze informatie raadplegen met 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 zullen de belangrijkste onderdelen van de tabel in latere secties bespreken.

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.

course content

Cursusinhoud

Lineaire Regressie Met Python

Lineaire Regressie Met Python

1. Eenvoudige Lineaire Regressie
2. Meervoudige Lineaire Regressie
3. Polynomiale Regressie
4. Het Beste Model Kiezen

book
Lineaire Regressie Bouwen Met 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 aanpak 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 model met de fit()-methode.

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

Wat gelijkwaardig is 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 we zagen in de Normale Vergelijking. Daarom moet je je X-array omzetten naar X_tilde. Dit is mogelijk met de functie sm.add_constant().

Parameters vinden

Wanneer het model is getraind, kun je eenvoudig de parameters benaderen 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 instanties kunnen eenvoudig worden voorspeld met de methode predict(), maar je moet de invoer hiervoor ook 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 verkrijgen

Zoals je waarschijnlijk hebt gemerkt, is het gebruik van de OLS-klasse niet zo eenvoudig als de functie polyfit(). Maar het gebruik van OLS heeft zijn voordelen. Tijdens het trainen berekent het veel statistische informatie. Je kunt deze informatie raadplegen met 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 zullen de belangrijkste onderdelen van de tabel in latere secties bespreken.

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