Meervoudige Lineaire Regressie Opbouwen
De OLS
-klasse maakt het mogelijk om Meervoudige Lineaire Regressie op dezelfde manier op te bouwen als Eenvoudige Lineaire Regressie. Helaas ondersteunt de functie np.polyfit()
echter niet het geval met meerdere kenmerken.
We blijven werken met de OLS
-klasse.
X̃-matrix opbouwen
We gebruiken dezelfde dataset als in het voorbeeld van eenvoudige lineaire regressie, maar nu bevat deze ook de lengte van de moeder als tweede kenmerk. We laden deze en bekijken de X
-variabele:
123456789import 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 X_tilde te verkrijgen, hoeven we alleen maar enen toe te voegen als eerste kolom. De functie sm.add_constant(X)
doet precies dat!
1234567891011import 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'] # Create X_tilde X_tilde = sm.add_constant(X) print(X_tilde.head())
Het vinden van de parameters
Uitstekend! Nu kunnen we het model bouwen, de parameters bepalen en voorspellingen doen op dezelfde manier als in de vorige sectie.
12345678910111213141516171819202122import pandas as pd import statsmodels.api as sm import numpy as np 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 X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde # 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)
Nu onze trainingsset 2 kenmerken bevat, moeten we voor elk nieuw geval dat we willen voorspellen 2 kenmerken opgeven. 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]
.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 5.26
Meervoudige Lineaire Regressie Opbouwen
Veeg om het menu te tonen
De OLS
-klasse maakt het mogelijk om Meervoudige Lineaire Regressie op dezelfde manier op te bouwen als Eenvoudige Lineaire Regressie. Helaas ondersteunt de functie np.polyfit()
echter niet het geval met meerdere kenmerken.
We blijven werken met de OLS
-klasse.
X̃-matrix opbouwen
We gebruiken dezelfde dataset als in het voorbeeld van eenvoudige lineaire regressie, maar nu bevat deze ook de lengte van de moeder als tweede kenmerk. We laden deze en bekijken de X
-variabele:
123456789import 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 X_tilde te verkrijgen, hoeven we alleen maar enen toe te voegen als eerste kolom. De functie sm.add_constant(X)
doet precies dat!
1234567891011import 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'] # Create X_tilde X_tilde = sm.add_constant(X) print(X_tilde.head())
Het vinden van de parameters
Uitstekend! Nu kunnen we het model bouwen, de parameters bepalen en voorspellingen doen op dezelfde manier als in de vorige sectie.
12345678910111213141516171819202122import pandas as pd import statsmodels.api as sm import numpy as np 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 X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde # 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)
Nu onze trainingsset 2 kenmerken bevat, moeten we voor elk nieuw geval dat we willen voorspellen 2 kenmerken opgeven. 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]
.
Bedankt voor je feedback!