Erstellung Einer Multiplen Linearen Regression
Swipe um das Menü anzuzeigen
Die OLS-Klasse ermöglicht den Aufbau einer multiplen linearen Regression auf die gleiche Weise wie bei der einfachen linearen Regression. Leider kann die Funktion np.polyfit() jedoch nicht mit mehreren Merkmalen umgehen.
Wir bleiben bei der OLS-Klasse.
Aufbau der X̃-Matrix
Wir verwenden denselben Datensatz wie im Beispiel zur einfachen linearen Regression, jedoch ist nun die Körpergröße der Mutter als zweite Eigenschaft enthalten. Wir laden den Datensatz und betrachten die Variable X:
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())
Beachte, dass wir OLS(y, X_tilde) verwenden sollten, um das OLS-Objekt zu initialisieren. Wie zu sehen ist, enthält die Variable X bereits zwei Merkmale in separaten Spalten. Um X_tilde zu erhalten, müssen wir lediglich Einsen als erste Spalte hinzufügen. Die Funktion sm.add_constant(X) übernimmt genau diese Aufgabe!
123# Create X_tilde X_tilde = sm.add_constant(X) print(X_tilde.head())
Bestimmung der Parameter
Ausgezeichnet! Nun können wir das Modell erstellen, die Parameter bestimmen und Vorhersagen treffen, genauso wie im vorherigen Abschnitt.
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)
Da unser Trainingssatz jetzt 2 Merkmale enthält, müssen wir für jede neue Instanz, die wir vorhersagen möchten, 2 Merkmale angeben. Deshalb wurde im obigen Beispiel np.array([[65, 62],[70, 65],[75, 70]]) verwendet. Es sagt y für 3 neue Instanzen voraus: [Father:65,Mother:62], [Father:70, Mother:65], [Father:75, Mother:70].
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen