Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Erstellen Einer Linearen Regression Mit NumPy | Einfache Lineare Regression
Lineare Regression mit Python

book
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
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 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()
12345678910
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()
copy

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)
12345678910
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)
copy

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 von

python
a, b = my_iterator

dasselbe wie

python
a = my_iterator[0]
b = my_iterator[1]

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

123456789101112
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
copy

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)
1234567891011
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)
copy

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.

question mark

Sie können die Parameter der einfachen linearen Regression mit der numpy-Funktion finden:

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
ChatGPT

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

some-alt