Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Lineare Regression Erstellen | Abschnitt
Grundlagen des Überwachten Lernens

bookLineare 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:

123456
import 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
copy

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.

123456
import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
copy

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 auf False gesetzt, wird kein Achsenabschnitt verwendet (d. h. die Daten werden als zentriert angenommen).
  • copy_X (Standard=True): Wenn True, 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. None bedeutet 1, es sei denn, es wird ein joblib.parallel_backend verwendet. -1 bedeutet, dass alle Prozessoren genutzt werden.
  • positive (Standard=False): Wenn auf True gesetzt, 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:

1234567891011121314
from 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)
copy
Note
Hinweis

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.

123
plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
copy

Da nun das trainierte Modell vorliegt, kann die Methode .predict() verwendet werden, um neue Werte vorherzusagen.

123
X_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)
copy

Es ist also ziemlich einfach, die Parameter der linearen Regression zu erhalten. Einige Bibliotheken können jedoch auch zusätzliche Informationen bereitstellen.

question mark

Welche Klasse wird in Scikit-learn zur Implementierung der linearen Regression verwendet?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 3

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

bookLineare 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:

123456
import 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
copy

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.

123456
import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
copy

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 auf False gesetzt, wird kein Achsenabschnitt verwendet (d. h. die Daten werden als zentriert angenommen).
  • copy_X (Standard=True): Wenn True, 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. None bedeutet 1, es sei denn, es wird ein joblib.parallel_backend verwendet. -1 bedeutet, dass alle Prozessoren genutzt werden.
  • positive (Standard=False): Wenn auf True gesetzt, 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:

1234567891011121314
from 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)
copy
Note
Hinweis

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.

123
plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
copy

Da nun das trainierte Modell vorliegt, kann die Methode .predict() verwendet werden, um neue Werte vorherzusagen.

123
X_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)
copy

Es ist also ziemlich einfach, die Parameter der linearen Regression zu erhalten. Einige Bibliotheken können jedoch auch zusätzliche Informationen bereitstellen.

question mark

Welche Klasse wird in Scikit-learn zur Implementierung der linearen Regression verwendet?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 3
some-alt