Data Science - Lineare Regression


Uns fehlt eine wichtige Variable, die Calorie_Burnage beeinflusst, nämlich die Dauer der Trainingseinheit.

Duration in Kombination mit Average_Pulse wird zusammen Calorie_Burnage genauer erklären.


Lineare Regression

Der Begriff Regression wird verwendet, wenn Sie versuchen, die Beziehung zwischen Variablen zu finden.

Beim maschinellen Lernen und bei der statistischen Modellierung wird diese Beziehung verwendet, um das Ergebnis von Ereignissen vorherzusagen.

In diesem Modul behandeln wir folgende Fragen:

  • Können wir schlussfolgern, dass Average_Pulse und Duration mit Calorie_Burnage zusammenhängen?
  • Können wir Average_Pulse und Duration verwenden, um Calorie_Burnage vorherzusagen?

Methode der kleinsten Quadrate

Die lineare Regression verwendet die Methode der kleinsten Quadrate.

Das Konzept besteht darin, eine Linie durch alle geplotteten Datenpunkte zu ziehen. Die Linie wird so positioniert, dass sie den Abstand zu allen Datenpunkten minimiert.

Der Abstand wird "Residuen" oder "Fehler" genannt.

Die roten gestrichelten Linien stellen den Abstand von den Datenpunkten zur gezeichneten mathematischen Funktion dar.

Lineare Regression - Kleinste Quadrate

Lineare Regression mit einer erklärenden Variablen

In diesem Beispiel versuchen wir, Calorie_Burnage mit Average_Pulse mithilfe der linearen Regression vorherzusagen:

Beispiel

import pandas as pd
import matplotlib.pyplot as plt
from scipy import stats

full_health_data = pd.read_csv("data.csv", header=0, sep=",")

x = full_health_data["Average_Pulse"]
y = full_health_data ["Calorie_Burnage"]

slope, intercept, r, p, std_err = stats.linregress(x, y)

def myfunc(x):
 return slope * x + intercept

mymodel = list(map(myfunc, x))

plt.scatter(x, y)
plt.plot(x, slope * x + intercept)
plt.ylim(ymin=0, ymax=2000)
plt.xlim(xmin=0, xmax=200)
plt.xlabel("Average_Pulse")
plt.ylabel ("Calorie_Burnage")
plt.show()

Beispiel erklärt:

  • Importieren Sie die benötigten Module: Pandas, matplotlib und Scipy
  • Isolieren Sie Average_Pulse als x. Isolieren Sie Calorie_burnage als y
  • Erhalten Sie wichtige Schlüsselwerte mit: Steigung, Schnittpunkt, r, p, std_err = stats.linregress(x, y)
  • Erstellen Sie eine Funktion, die die Neigungs- und Schnittpunktwerte verwendet, um einen neuen Wert zurückzugeben. Dieser neue Wert stellt dar, wo auf der y-Achse der entsprechende x-Wert platziert wird
  • Führen Sie jeden Wert des x-Arrays durch die Funktion. Dies führt zu einem neuen Array mit neuen Werten für die y-Achse: mymodel = list(map(myfunc, x))
  • Zeichnen Sie das ursprüngliche Streudiagramm: plt.scatter(x, y)
  • Zeichnen Sie die Linie der linearen Regression: plt.plot(x, mymodel)
  • Maximal- und Minimalwerte der Achse definieren
  • Beschriften Sie die Achse: "Average_Pulse" und "Calorie_Burnage"

Ausgabe:

Lineare Regression – Eine Variable – Kleinste Quadrate

Glauben Sie, dass die Linie Calorie_Burnage genau vorhersagen kann?

Wir werden zeigen, dass die Variable Average_Pulse allein nicht ausreicht, um eine genaue Vorhersage von Calorie_Burnage zu treffen.