Zum Inhalt springen

Lineare Regression

Die lineare Regression ist ein leistungsfähiges statistisches Werkzeug, das weit verbreitet im maschinellen Lernen und in der prädiktiven Modellierung eingesetzt wird. Sie findet die bestmögliche Anpassungslinie zwischen einer abhängigen Variable und einer oder mehreren unabhängigen Variablen, indem sie die Summe der quadrierten Fehler zwischen vorhergesagten und tatsächlichen Werten minimiert.

In diesem Leitfaden zeigen wir, wie man lineare Regression in Python mit scikit-learn implementiert. Wir beginnen mit einer kurzen Einführung in die Technik und ihre Anwendungen und führen anschließend durch eine vollständige Implementierung.

Einführung in die lineare Regression

Die lineare Regression modelliert die Beziehung zwischen einer abhängigen Variable und einer oder mehreren unabhängigen Variablen. Sie geht von einer linearen Beziehung aus, was bedeutet, dass Änderungen in der abhängigen Variable proportional zu Änderungen in den unabhängigen Variablen sind. Sie wird weit verbreitet in Finanzen, Wirtschaft, Marketing und Ingenieurwesen eingesetzt, um Trends vorherzusagen und Entscheidungsprozesse zu unterstützen.

Es gibt zwei Haupttypen: die einfache lineare Regression (eine unabhängige Variable) und die multiple lineare Regression (zwei oder mehr unabhängige Variablen). Dieser Leitfaden konzentriert sich auf die multiple lineare Regression.

Implementierung der linearen Regression mit Scikit-learn

Scikit-learn ist eine beliebte Python-Bibliothek für maschinelles Lernen, die robuste Tools für Datenanalyse und Modellierung bereitstellt. Sie enthält ein dediziertes Modul für die lineare Regression, das die Implementierung von Modellen vereinfacht.

Schritt 1: Erforderliche Bibliotheken importieren

Bevor wir die lineare Regression mit scikit-learn implementieren können, müssen wir die erforderlichen Bibliotheken importieren. Wir verwenden die folgenden Bibliotheken:

Importieren Sie die erforderlichen Bibliotheken, um lineare Regression mit scikit-learn in Python zu implementieren:

python
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score

Schritt 2: Dataset laden

Der nächste Schritt besteht darin, das Dataset zu laden, das wir zum Trainieren unseres linearen Regressionsmodells verwenden werden. Wir verwenden das California Housing-Dataset, das der moderne Standard für Regressionsaufgaben ist.

Hinweis: Das Boston Housing-Dataset wurde aus scikit-learn 1.4 aufgrund ethischer Bedenken entfernt. Wir verwenden stattdessen das California Housing-Dataset.

Laden Sie das Dataset, das wir zum Trainieren unseres linearen Regressionsmodells verwenden, mit fetch_california_housing in Python:

python
from sklearn.datasets import fetch_california_housing

california = fetch_california_housing()
california_df = pd.DataFrame(california.data, columns=california.feature_names)
california_df['MedHouseVal'] = california.target

Schritt 3: Dataset erkunden

Bevor wir unser lineares Regressionsmodell trainieren können, müssen wir das Dataset erkunden, um seine Struktur und Merkmale zu verstehen. Dies können wir tun, indem wir das Dataset in einen Pandas-DataFrame konvertieren und die Funktion head() verwenden, um die ersten Zeilen der Daten anzuzeigen.

Konvertieren Sie das Dataset in einen Pandas-DataFrame in Python:

python
california_df.head()

Schritt 4: Daten für das Training vorbereiten

Der nächste Schritt besteht darin, die Daten für das Training unseres linearen Regressionsmodells vorzubereiten. Wir verwenden die Merkmale AveRooms und AveBedrms als unsere unabhängigen Variablen und das Merkmal MedHouseVal als unsere abhängige Variable.

Bereiten Sie die Daten für das Training unseres multiplen linearen Regressionsmodells in Python vor:

python
X = california_df[['AveRooms', 'AveBedrms']]
y = california_df['MedHouseVal']

Schritt 5: Daten in Trainings- und Testdaten aufteilen

Um die Leistung unseres linearen Regressionsmodells zu bewerten, müssen wir die Daten in Trainings- und Testdaten aufteilen. Wir verwenden die Funktion train_test_split() aus scikit-learn, um die Daten aufzuteilen.

Teilen Sie die Daten in Trainings- und Testdaten in Python auf:

python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

Schritt 6: Lineares Regressionsmodell trainieren

Der nächste Schritt besteht darin, das lineare Regressionsmodell mit dem Trainingsdatensatz zu trainieren. Wir verwenden die Methode fit() der Klasse LinearRegression, um das Modell zu trainieren.

Trainieren Sie das lineare Regressionsmodell mit dem Trainingsdatensatz in Python:

python
regressor = LinearRegression()
regressor.fit(X_train, y_train)

Schritt 7: Vorhersagen für die Testdaten treffen

Sobald das Modell trainiert ist, können wir es verwenden, um Vorhersagen für die Testdaten zu treffen. Wir verwenden die Methode predict() der Klasse LinearRegression, um Vorhersagen zu treffen.

Sobald das Modell trainiert ist, können wir es verwenden, um Vorhersagen für die Testdaten in Python zu treffen:

python
y_pred = regressor.predict(X_test)

Schritt 8: Leistung des Modells bewerten

Um die Leistung unseres linearen Regressionsmodells zu bewerten, verwenden wir zwei Metriken: den mittleren quadratischen Fehler (MSE) und das Bestimmtheitsmaß (R²). Wir können diese Metriken mit den Funktionen mean_squared_error() und r2_score() aus scikit-learn berechnen.

Berechnen Sie MSE und R² in Python:

python
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

print('Mean Squared Error:', mse)
print('Coefficient of Determination:', r2)

Schritt 9: Ergebnisse visualisieren

Abschließend können wir die Ergebnisse unseres linearen Regressionsmodells visualisieren, indem wir die Regressionslinie und die tatsächlichen Datenpunkte plotten. Wir können die Bibliothek matplotlib verwenden, um das Diagramm zu erstellen.

Visualisieren Sie die Ergebnisse unseres linearen Regressionsmodells, indem Sie die Regressionslinie und die tatsächlichen Datenpunkte in Python plotten:

python
import matplotlib.pyplot as plt

plt.scatter(X_test['AveRooms'], y_test, color='black')
plt.plot(X_test['AveRooms'], y_pred, color='blue', linewidth=3)
plt.title('Linear Regression')
plt.xlabel('Average Rooms per Dwelling')
plt.ylabel('Median House Value (in $100,000s)')
plt.show()

Fazit

In diesem Leitfaden haben wir gezeigt, wie man lineare Regression in Python mit scikit-learn implementiert. Wir haben das Importieren von Bibliotheken, das Laden und Erkunden eines Datasets, das Vorbereiten von Merkmalen, das Aufteilen von Daten, das Trainieren des Modells, das Treffen von Vorhersagen, das Bewerten der Leistung und das Visualisieren der Ergebnisse behandelt. Diese Pipeline bietet eine solide Grundlage für den Aufbau und die Bereitstellung von Regressionsmodellen in Ihren eigenen maschinellen Lernprojekten.

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.