Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Meervoudige Lineaire Regressie Opbouwen | Meervoudige Lineaire Regressie
Lineaire Regressie met Python

Meervoudige Lineaire Regressie Opbouwen

Veeg om het menu te tonen

De OLS-klasse maakt het mogelijk om Meervoudige Lineaire Regressie op dezelfde manier te bouwen als Eenvoudige Lineaire Regressie. Helaas ondersteunt de functie np.polyfit() echter niet het geval met meerdere kenmerken.

We blijven bij de OLS-klasse.

OLS-klasse

X̃-matrix opbouwen

Hetzelfde dataset als in het voorbeeld van eenvoudige lineaire regressie, maar nu met de lengte van de moeder als tweede kenmerk. We laden het in en bekijken de X-variabele:

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())

Onthoud dat we OLS(y, X_tilde) moeten gebruiken om het OLS-object te initialiseren. Zoals je ziet bevat de X-variabele al twee kenmerken in aparte kolommen. Om de X_tilde te krijgen, hoeven we alleen maar 1-en als eerste kolom toe te voegen. De functie sm.add_constant(X) doet precies dat!

123
# Create X_tilde X_tilde = sm.add_constant(X) print(X_tilde.head())

Parameters vinden

Geweldig! Nu kunnen we het model bouwen, de parameters vinden en voorspellingen doen op dezelfde manier als in de vorige sectie.

12345678910111213141516
import numpy as np # 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)
Note
Opmerking

Nu onze trainingsset 2 kenmerken heeft, moeten we voor elk nieuw geval dat we willen voorspellen 2 kenmerken aanleveren. Daarom werd np.array([[65, 62],[70, 65],[75, 70]]) gebruikt in het bovenstaande voorbeeld. Hiermee wordt y voorspeld voor 3 nieuwe gevallen: [Father:65,Mother:62], [Father:70, Mother:65], [Father:75, Mother:70].

question mark

Wat doet de sm.add_constant(X)?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 3

Vraag AI

expand

Vraag AI

ChatGPT

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

Meervoudige Lineaire Regressie Opbouwen

De OLS-klasse maakt het mogelijk om Meervoudige Lineaire Regressie op dezelfde manier te bouwen als Eenvoudige Lineaire Regressie. Helaas ondersteunt de functie np.polyfit() echter niet het geval met meerdere kenmerken.

We blijven bij de OLS-klasse.

OLS-klasse

X̃-matrix opbouwen

Hetzelfde dataset als in het voorbeeld van eenvoudige lineaire regressie, maar nu met de lengte van de moeder als tweede kenmerk. We laden het in en bekijken de X-variabele:

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())

Onthoud dat we OLS(y, X_tilde) moeten gebruiken om het OLS-object te initialiseren. Zoals je ziet bevat de X-variabele al twee kenmerken in aparte kolommen. Om de X_tilde te krijgen, hoeven we alleen maar 1-en als eerste kolom toe te voegen. De functie sm.add_constant(X) doet precies dat!

123
# Create X_tilde X_tilde = sm.add_constant(X) print(X_tilde.head())

Parameters vinden

Geweldig! Nu kunnen we het model bouwen, de parameters vinden en voorspellingen doen op dezelfde manier als in de vorige sectie.

12345678910111213141516
import numpy as np # 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)
Note
Opmerking

Nu onze trainingsset 2 kenmerken heeft, moeten we voor elk nieuw geval dat we willen voorspellen 2 kenmerken aanleveren. Daarom werd np.array([[65, 62],[70, 65],[75, 70]]) gebruikt in het bovenstaande voorbeeld. Hiermee wordt y voorspeld voor 3 nieuwe gevallen: [Father:65,Mother:62], [Father:70, Mother:65], [Father:75, Mother:70].

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 3
some-alt