Kursinhalt
Lineare Regression mit Python
Lineare Regression mit Python
Erstellen Einer Linearen Regression Mit NumPy
Sie wissen bereits, was einfache lineare Regression ist und wie man die Linie findet, die die Daten am besten anpasst. Lassen Sie uns alle Schritte durchgehen, um eine lineare Regression für einen echten Datensatz zu erstellen.
Daten laden
Wir haben eine Datei, simple_height_data.csv
, mit den Daten aus unseren Beispielen. Lassen Sie uns die Datei laden und einen Blick darauf werfen.
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
Das Dataset hat zwei Spalten, eine ist 'Height', was unser Ziel ist, und die zweite Spalte, 'Father', ist die Größe des Vaters. Das ist unser Merkmal.
Lassen Sie uns unsere Zielwerte der Variablen y
und die Merkmalswerte X
zuweisen und ein Streudiagramm erstellen.
import pandas as pd import matplotlib.pyplot as plt 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 X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
Parameter finden
Nun, NumPy hat eine schöne Funktion, um die Parameter der linearen Regression zu finden.
Lineare Regression ist eine Polynomiale Regression vom Grad 1 (wir werden in späteren Abschnitten über Polynomiale Regression sprechen). Deshalb müssen wir deg=1
setzen, um die Parameter für die lineare Regression zu erhalten.
Hier ist ein Beispiel:
import pandas as pd import numpy as np 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 files X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters print('beta_0 is', beta_0) print('beta_1 is', beta_1)
Hinweis
Wenn Sie mit der Syntax
beta_1, beta_0 = np.polyfit(X,y,1)
nicht vertraut sind, nennt man das Entpacken.
Wenn Sie einen Iterator (z.B. Liste oder NumPy-Array oder pandas-Serie) haben, der zwei Elemente enthält, dann ist das Schreiben vondasselbe wie
Und da die Rückgabe einer
polyfit()
-Funktion ein NumPy-Array mit zwei Werten ist, dürfen wir das tun.
Die Vorhersagen machen
Nun können wir die Linie plotten und neue Variablen mit den Parametern vorhersagen.
import pandas as pd import numpy as np import matplotlib.pyplot as plt 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 X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters plt.scatter(X,y) # Build a scatter plot plt.plot(X, beta_0 + beta_1 * X) # Plot the line
Jetzt, da wir die Parameter haben, können wir die lineare Regressionsgleichung verwenden, um neue Werte vorherzusagen.
import pandas as pd import numpy as np import matplotlib.pyplot as plt 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 X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters X_new = np.array([65, 70, 75]) # Feature values of new instances y_pred = beta_0 + beta_1 * X_new # Predict the target print('Predicted y: ', y_pred)
Es ist also ziemlich einfach, die Parameter der linearen Regression zu erhalten. Aber einige Bibliotheken können Ihnen auch zusätzliche Informationen geben. Schauen wir uns eine solche Bibliothek an.
Danke für Ihr Feedback!