Lineare Regression Erstellen
Sie kennen bereits die einfache lineare Regression und wissen, wie man die am besten passende Gerade für die Daten findet. Nun werden alle Schritte zur Erstellung einer linearen Regression für einen realen Datensatz durchlaufen.
Laden von Daten
Wir verfügen über eine Datei, simple_height_data.csv, mit den Daten aus unseren Beispielen. Wir laden die Datei und betrachten sie:
123456import 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 print(df.head()) # Print the first 5 instances from a dataset
Das Datenset enthält zwei Spalten: Die erste ist 'Father', das Eingabemerkmal, und die zweite ist 'Height', unsere Zielvariable.
Die Zielwerte werden der Variablen y zugewiesen und die Merkmalswerte X. Anschließend wird ein Streudiagramm erstellt.
123456import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
Parameterbestimmung
Für die Implementierung der linearen Regression in Scikit-learn wird die Klasse LinearRegression verwendet.
LinearRegression(fit_intercept=True, copy_X=True, n_jobs=None, positive=False)
Parameter
Die Klasse LinearRegression verfügt über mehrere Parameter, die steuern, wie das Modell angepasst wird.
fit_intercept(Standard=True): Legt fest, ob der Achsenabschnitt (Bias) für dieses Modell berechnet wird. Wenn aufFalsegesetzt, wird kein Achsenabschnitt verwendet (d. h. die Daten werden als zentriert angenommen).copy_X(Standard=True): WennTrue, wird X kopiert; andernfalls kann es überschrieben werden.n_jobs(Standard=None): Die Anzahl der Jobs, die für die Berechnung verwendet werden. Dies beschleunigt nur bei n_targets > 1 und ausreichend großen Problemen.Nonebedeutet 1, es sei denn, es wird einjoblib.parallel_backendverwendet.-1bedeutet, dass alle Prozessoren genutzt werden.positive(Standard=False): Wenn aufTruegesetzt, werden die Koeffizienten auf positive Werte beschränkt. Diese Option wird nur für dichte Arrays unterstützt.
Gängige Methoden
fit(X, y): Anpassung des linearen Modells.predict(X): Vorhersage mit dem linearen Modell.score(X, y): Gibt das Bestimmtheitsmaß der Vorhersage zurück.
Attribute
coef_: Geschätzte Koeffizienten für das lineare Regressionsproblem.intercept_: Unabhängiges Glied im linearen Modell.
In Scikit-learn wird die Klasse LinearRegression aus dem Modul linear_model verwendet. Im Gegensatz zu NumPy wird hier der Grad nicht definiert; diese Klasse ist speziell für lineare Modelle konzipiert. Die Berechnung der Parameter erfolgt mit der Methode .fit().
Hier ein Beispiel:
1234567891011121314from sklearn.linear_model import LinearRegression import numpy as np # Convert the pandas Series to a NumPy array, then reshape X_reshaped = X.values.reshape(-1, 1) model = LinearRegression() model.fit(X_reshaped, y) # Train the model beta_0 = model.intercept_ # Get the intercept (beta_0) beta_1 = model.coef_[0] # Get the coefficient (beta_1) print('beta_0 is', beta_0) print('beta_1 is', beta_1)
Falls Sie mit der Syntax model.intercept_ und model.coef_ nicht vertraut sind: Dies ist eine Konvention in Scikit-learn. Attribute, die während des Trainingsprozesses berechnet (gelernt) werden, enden immer mit einem Unterstrich _ (z. B. intercept_, coef_).
Der intercept_ ist ein einzelner Wert, während coef_ ein Array mit den Koeffizienten für jedes Merkmal ist (bei der einfachen linearen Regression enthält es nur ein Element).
Durchführung von Vorhersagen
Nun kann die Linie geplottet und neue Variablen mithilfe des trainierten Modells vorhergesagt werden.
123plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
Da nun das trainierte Modell vorliegt, kann die Methode .predict() verwendet werden, um neue Werte vorherzusagen.
123X_new = np.array([[65], [70], [75]]) # Feature values (must be 2D) y_pred = model.predict(X_new) # Predict the target print('Predicted y: ', y_pred)
Es ist also ziemlich einfach, die Parameter der linearen Regression zu erhalten. Einige Bibliotheken können jedoch auch zusätzliche Informationen bereitstellen.
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
Großartig!
Completion Rate verbessert auf 3.33
Lineare Regression Erstellen
Swipe um das Menü anzuzeigen
Sie kennen bereits die einfache lineare Regression und wissen, wie man die am besten passende Gerade für die Daten findet. Nun werden alle Schritte zur Erstellung einer linearen Regression für einen realen Datensatz durchlaufen.
Laden von Daten
Wir verfügen über eine Datei, simple_height_data.csv, mit den Daten aus unseren Beispielen. Wir laden die Datei und betrachten sie:
123456import 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 print(df.head()) # Print the first 5 instances from a dataset
Das Datenset enthält zwei Spalten: Die erste ist 'Father', das Eingabemerkmal, und die zweite ist 'Height', unsere Zielvariable.
Die Zielwerte werden der Variablen y zugewiesen und die Merkmalswerte X. Anschließend wird ein Streudiagramm erstellt.
123456import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
Parameterbestimmung
Für die Implementierung der linearen Regression in Scikit-learn wird die Klasse LinearRegression verwendet.
LinearRegression(fit_intercept=True, copy_X=True, n_jobs=None, positive=False)
Parameter
Die Klasse LinearRegression verfügt über mehrere Parameter, die steuern, wie das Modell angepasst wird.
fit_intercept(Standard=True): Legt fest, ob der Achsenabschnitt (Bias) für dieses Modell berechnet wird. Wenn aufFalsegesetzt, wird kein Achsenabschnitt verwendet (d. h. die Daten werden als zentriert angenommen).copy_X(Standard=True): WennTrue, wird X kopiert; andernfalls kann es überschrieben werden.n_jobs(Standard=None): Die Anzahl der Jobs, die für die Berechnung verwendet werden. Dies beschleunigt nur bei n_targets > 1 und ausreichend großen Problemen.Nonebedeutet 1, es sei denn, es wird einjoblib.parallel_backendverwendet.-1bedeutet, dass alle Prozessoren genutzt werden.positive(Standard=False): Wenn aufTruegesetzt, werden die Koeffizienten auf positive Werte beschränkt. Diese Option wird nur für dichte Arrays unterstützt.
Gängige Methoden
fit(X, y): Anpassung des linearen Modells.predict(X): Vorhersage mit dem linearen Modell.score(X, y): Gibt das Bestimmtheitsmaß der Vorhersage zurück.
Attribute
coef_: Geschätzte Koeffizienten für das lineare Regressionsproblem.intercept_: Unabhängiges Glied im linearen Modell.
In Scikit-learn wird die Klasse LinearRegression aus dem Modul linear_model verwendet. Im Gegensatz zu NumPy wird hier der Grad nicht definiert; diese Klasse ist speziell für lineare Modelle konzipiert. Die Berechnung der Parameter erfolgt mit der Methode .fit().
Hier ein Beispiel:
1234567891011121314from sklearn.linear_model import LinearRegression import numpy as np # Convert the pandas Series to a NumPy array, then reshape X_reshaped = X.values.reshape(-1, 1) model = LinearRegression() model.fit(X_reshaped, y) # Train the model beta_0 = model.intercept_ # Get the intercept (beta_0) beta_1 = model.coef_[0] # Get the coefficient (beta_1) print('beta_0 is', beta_0) print('beta_1 is', beta_1)
Falls Sie mit der Syntax model.intercept_ und model.coef_ nicht vertraut sind: Dies ist eine Konvention in Scikit-learn. Attribute, die während des Trainingsprozesses berechnet (gelernt) werden, enden immer mit einem Unterstrich _ (z. B. intercept_, coef_).
Der intercept_ ist ein einzelner Wert, während coef_ ein Array mit den Koeffizienten für jedes Merkmal ist (bei der einfachen linearen Regression enthält es nur ein Element).
Durchführung von Vorhersagen
Nun kann die Linie geplottet und neue Variablen mithilfe des trainierten Modells vorhergesagt werden.
123plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
Da nun das trainierte Modell vorliegt, kann die Methode .predict() verwendet werden, um neue Werte vorherzusagen.
123X_new = np.array([[65], [70], [75]]) # Feature values (must be 2D) y_pred = model.predict(X_new) # Predict the target print('Predicted y: ', y_pred)
Es ist also ziemlich einfach, die Parameter der linearen Regression zu erhalten. Einige Bibliotheken können jedoch auch zusätzliche Informationen bereitstellen.
Danke für Ihr Feedback!