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.
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:
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 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.
12345678910111213141516import 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)
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].
Bedankt voor je feedback!
Vraag AI
Vraag AI
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.
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:
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 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.
12345678910111213141516import 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)
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].
Bedankt voor je feedback!