Problemstellung

  • Mit der Regression sagt man kontinuierliche Werte (meistens Kommazahlen) vorher

Lineare Regression

Die lineare Regression ist ein grundlegendes Verfahren im - maschinellen Lernen, das zur Vorhersage kontinuierlicher Werte (meist Kommazahlen) verwendet wird.

Lineare Regression

  • In zweidimensionalen Raum eine Gerade
  • In höheren Dimensionen Hyperebene

Lineare Regression versucht, eine Beziehung herzustellen zwischen:

  • einer abhängigen Variable (die vorhergesagt werden soll) und
  • einer oder mehreren unabhängigen Variablen (die zur Vorhersage verwendet werden)

Grundidee

  • Lineare Funktion durch Messwerte legen, um dann Werte voerherzusagen.
  • Lineare Funktion sucht die Gerade, die am besten zu den Daten passt.
  • ist quadratischer Fehler (d.h. wenn man die Abstände aller Punkte zur Regressionsgerade quadirert und aufsummiert)
  • Echter Wert des Datenpunktes
  • Schätzung des Modells

Die beste Gerade finden

Um die beste Gerade zu finden, verwendet die lineare Regression Optimierungsverfahren, die sog. Methoden der kleisten Quadrate

Methoden der kleisten Quadrate

berechnet die Abstände aller Punkte zur Regressionsgerade, quadriert diese Abstände und sumiiert sie auf

die Gerade, die diesen quadratischen Fehler minimiert, ist als die beste Anpassung an die Daten betrachtet.

Anwendungsbeispiele für die lineare Regression

  • Vorhersage von Wohnungspreisen basierend auf der Wohnungsgröße
  • Analyse des Zusammenhangs zwischen dem Gewicht eines Fahrzeugs und dessen Kraftstoffverbrauch
  • Prognose von Aktienkursen (wie in unserem vorherigen Gespräch) Vorhersage von Verkaufszahlen basierend auf Werbeausgaben
  • Abschätzung der Lebenserwartung basierend auf Faktoren wie Ernährung und Bewegung

Beispielaufgabe

  • Wir sollen nun auf Basis der Größe einer uns unbekannten Wohnung voraussagen können, welchen Verkaufspreis sie in etwa erzielt.
  • Esscheint einen annähernd linearen Zusammenhang zwischen der Wohnungsgröße und dem Kaufpreis zu geben, wir verwenden daher die Lineare Regression.

Implementierung

Das Python Maschine Learning Toolkit wird verwendet, welche mehrere Hilfsfunktionen für das Training solcher Algorithmen bietet, z.B. train_test_split

  • diese teilt die Trainingsdaten in eine Trainings- und eine Verifikationsdatenmenge auf.

Nie ein Modell mit den Daten verifizieren, mit denen es trainiert wurde.

70-80 % der vorhandenen Trainingsdaten tatäschlich zum Training des Modells verwenden. Mit den Restlichen Daten (meistens 25 %) wird geprüft, wie gut das trainierte Modell passt.

Wir teilen unsere Daten in Trainingsdaten und Testdaten auf. Mit den Trainingsdaten erstellen wir unsere Modell. Mit den Testdaten schauen wir, wie gut es verallgemeinert.

from sklearn.model_selection import train_test_split
X = df[["Quadratmeter"]].values # df steht für dataframe
Y = df[["Kaltmiete"]].values # Daten werden aus der CSV Datei ausgelesen und in Y gespeichert.
X_train, X_test, Y_train, Y_test=train_test_split(X,Y, random_state =0) # bei jeder Ausführung -> Gleiche Ausführung
# Eingangsdaten von X in train und test

random_state gibt einen festen Wert für zufällige Aufteilung an

  • Ohne random_state wird bei jedem Aufruf der Funktion eine andere Aufteilung vorgenommen somit anderes Ergebnis als zuvor
  • Mit random_state=0bleibt die Aufteilug jdes Mal gleich
  • Empfohlende Werte 0, 42, 123

Training des Datenmodells

Wir erstellen ein Modell und trainieren es mit den Testdaten.

from sklearn.linear_model import LinearRegression # das ist ein Modell für die Lineare Regression
model = LinearRegression() 
model.fit(X_train, Y_train) # Hier wird das Modell trainiert, die Trainingsdaten werden als Params eingegeben
 
print ("Achsenabschnitt b: " + str(model.intercept_))
print ("Steigung a: " + str(model.coef_))

Vorhersagen

predicted = model.predict(X_test) # oder Werte wie [[55]] eingeben
print(predicted)

Visualisierung der Daten anhand eines Scatters

%matplotlib inline
import matplotlib.pyplot as plt
plt.scatter(X_test, Y_test, color = "red")
plt.plot(X_test, predicted, color = "blue")
plt.show()

Bestimmtheitsmaß

Wenn man die Qualität von Modellen vergleichen möchte, braucht man ein Maß, das die Prognosegüte beschreibt.

Bestimmtheitsmaß

  • Quadratischer Fehler des Vergleichsmodells, das immer den `Durchschnitt aller Zielwerte in den Testdaten vorhersagt.
  • Quadratischer Fehler des Regressionsmodells, das traininiert wurde, um die Zielwerte auf Basis der Eingabedaten vorherzusagen.

Je näher an der 1 ist, desto besser ist das Modell

Übungsaufgabe zur Berechnung von Bestimmtheitsmaß

Variante 1

from sklearn.metrics import r2_score
 
r2 = r2_score(Y_test, y_test_predicted)
print(r2)

Variante 2

Hier wird die Methode “score” verwendet:

model.score(X_test, Y_test)

Quitz

Frage 1: Was ist das Hauptziel der linearen Regression?

a) Klassifizierung von Datenpunkten in verschiedene Kategorien.
b) Vorhersage von kontinuierlichen Werten.
c) Gruppierung ähnlicher Datenpunkte in Cluster.
d) Reduktion der Dimensionalität von Datensätzen.


Frage 2: Welches Optimierungsverfahren wird in der linearen Regression verwendet, um die beste Gerade zu finden?

a) Gradientenabstieg
b) Methode der kleinsten Quadrate
c) Backpropagation
d) k-fache Kreuzvalidierung


Frage 3: Wie nennt man den Fehler, der bei der linearen Regression minimiert wird?

a) Absoluter Fehler
b) Quadratischer Fehler
c) Mittlerer quadratischer Fehler
d) Kreuzentropie


Frage 4: Welche Aussage über das Bestimmtheitsmaß ist falsch?

a) ist ein Maß für die Güte der Anpassung eines Regressionsmodells an die Daten.
b) Ein von 1 bedeutet, dass das Modell die Daten perfekt vorhersagt.
c) Ein von 0 bedeutet, dass das Modell genauso gut ist wie ein Modell, das immer den Durchschnitt der Zielwerte vorhersagt.
d) Ein kann Werte zwischen -1 und 1 annehmen.


Frage 5: Welche der folgenden Anwendungen ist ein Beispiel für die lineare Regression?

a) Erkennung von Objekten auf Bildern
b) Gruppierung von Kunden in verschiedene Segmente
c) Vorhersage der Wahrscheinlichkeit, dass ein Kunde ein Produkt kauft.
d) Vorhersage des Verkaufspreises eines Hauses basierend auf seiner Größe und Lage.


Frage 6: In welchen Fällen ist die lineare Regression nicht geeignet?

a) Wenn die Daten viele Ausreißer enthalten.
b) Wenn der Zusammenhang zwischen den Variablen nicht linear ist.
c) Wenn die Daten nicht normalverteilt sind.
d) Wenn es mehr als eine unabhängige Variable gibt.

Quitz zu Bestimmheitsmaß

Frage 1: Was repräsentiert das Bestimmtheitsmaß ()?

a) Den durchschnittlichen Fehler des Modells.
b) Die Anzahl der korrekt vorhergesagten Datenpunkte.
c) Den Grad der Linearität zwischen den Variablen.
d) Den Anteil der Varianz in den Daten, der durch das Modell erklärt wird.


Frage 2: Wie wird das Bestimmtheitsmaß berechnet?

a) = /
b) = 1 - ( / )
c) = -
d) = 1 + ( / )


Frage 3: Ein Regressionsmodell hat ein von 0,8. Was bedeutet das?

a) Das Modell macht 80% Fehler bei den Vorhersagen.
b) Das Modell erklärt 80% der Varianz in den Daten.
c) Das Modell ist 80% besser als ein Zufallsmodell.
d) Das Modell hat 80% der Datenpunkte korrekt vorhergesagt.


Frage 4: Welcher -Wert zeigt die beste Modellanpassung an die Daten an?

a) 0
b) 0,5
c) 1
d) -1


Frage 5: In welchem Bereich liegt der -Wert typischerweise?

a) -1 bis 1
b) 0 bis 1
c) 0 bis unendlich
d) -unendlich bis unendlich