Page cover

Regression vs. Klassifikation

Regression und Klassifikation sind zwei grundlegende Aufgaben im überwachten maschinellen Lernen. Obwohl beide dazu dienen, Vorhersagen zu treffen, gibt es entscheidende Unterschiede zwischen ihnen.

Regression

Regression hat zum Ziel, kontinuierliche numerische Werte oder eine reale Zahl als Ausgabe vorherzusagen. Zum Beispiel die Vorhersage des Preises eines Hauses basierend auf seinen Merkmalen (Größe, Anzahl Zimmer, Lage, usw.) oder die Prognose der Temperatur anhand von meteorologischen Daten.

In der Regression ist die Ausgabe kontinuierlich und numerisch. Sie kann jeden Wert innerhalb eines Wertebereichs annehmen. Die Ausgabe könnte zum Beispiel ein Wert wie 25,5 °C oder 105.000 € sein. In der Regression werden metrische Bewertungskriterien wie der mittlere quadratische Fehler (engl. Mean Squared Error, MSE) oder der mittlere absolute Fehler (engl. Mean Absolute Error, MAE) verwendet. Vorhersage von Aktienkursen, Schätzung des zukünftigen Umsatzes eines Unternehmens, Vorhersage der Länge eines Fisches basierend auf seinen Merkmalen sind einige Beispiele für Regressionsprobleme. In Abbildung 2 ist eine kontinuierliche Regressionskurve für einen Datensatz abgebildet, mit welcher solche Vorhersagen in Bezug auf den Datensatz getroffen werden können.

Abbildung 2: Regressionsbeispiel zur Vorhersage der Datenpunkte durch eine Anpassungsfunktion

Klassifikation

Die Klassifikation zielt darauf ab, Eingaben in vordefinierte Klassen oder Kategorien einzuordnen. Zum Beispiel, die Einteilung von E-Mails in "Spam" und "Nicht-Spam" oder die Erkennung von Krankheiten basierend auf medizinischen Tests.

In der Klassifikation ist die Ausgabe diskret und kategorisch. Es handelt sich um eine Klassenbezeichnung, die eine der vordefinierten Kategorien darstellt. Die Ausgabe könnte zum Beispiel "Ja" oder "Nein", "Katze", "Hund" oder "Maus" sein. In der Klassifikation werden metrische Bewertungskriterien wie Genauigkeit (engl. Accuracy), Präzision (engl. Precision), Trefferquote (engl. Recall) und F-Maß (engl. F1-Score) verwendet.

Die Erkennung von Personen oder Straßenschildern, Betrugserkennung in Finanztransaktionen oder Genrezuweisung von Liedern sind einige Beispiele für Klassifikationsprobleme. In Abbildung 3 wird eine solche diskrete und kategorische Unterteilung visualisiert. Die Datenpunkte werden einer der 3 Klassen zugeordnet.

Abbildung 3: Klassifikation dreier Punktwolken

Mehr erfahren: Medium/Regression Versus Classification Machine Learning: What’s the Difference?

Lineare Regression

Die lineare Regression ist eine grundlegende statistische Methode, die verwendet wird, um die Beziehung zwischen einer abhängigen Variablen (y) und unabhängigen Variablen (x) zu modellieren. Sie findet Anwendung in verschiedenen Bereichen, insbesondere wenn es darum geht, Vorhersagen basierend auf numerischen Daten zu treffen. In Abbildung 4 wird die lineare Regression veranschaulicht. Um eine Vorhersage anhand der bisherigen Daten für einen spezifischen x-Wert zu treffen, kann der y-Wert an der Stelle des x-Wertes der Regressionsgeraden ausgelesen werden.

Abbildung 4: Vorhersage der Datenpunkte durch eine lineare Anpassungsfunktion

Folgende Eigenschaften weist die lineare Regression auf:

  • Mathematische Darstellung: (a ist die Steigung, b der y-Achsenabschnitt).

y=ax+by=a \cdot x+b
  • Während des Trainingsprozesses werden die besten Werte für die lernbaren Parameter a und b gefunden, um eine optimale Anpassung an die Daten zu erreichen.

  • Ein klassisches Beispiel ist die Vorhersage von Hauspreisen basierend auf Merkmalen wie Größe und Lage.

Im Folgenden werden die Vor- und Nachteile der linearen Regression beleuchtet.

Vorteile:

  • Einfachheit und Interpretierbarkeit: Die lineare Regression ist einfach zu verstehen und zu interpretieren, da sie eine klare mathematische Formel hat.

  • Effizienz: Das Training und die Vorhersage mit linearen Regressionen sind in der Regel schnell und erfordern wenig Rechenleistung.

  • Anwendbarkeit auf kontinuierliche Variablen: Die lineare Regression ist besonders gut geeignet für Vorhersagen, die auf kontinuierlichen Variablen beruhen.

Nachteile:

  • Linearität: Die lineare Regression setzt voraus, dass die Beziehung zwischen den Variablen linear ist, was in vielen realen Problemen nicht der Fall ist.

  • Sensibilität gegenüber Ausreißern: Ausreißer in den Daten können die Leistung der linearen Regression erheblich beeinträchtigen, da sie stark von den durchschnittlichen Datenpunkten beeinflusst wird.

Im folgenden Code zeigt die Anwendung einer linearen Regression auf einen zufällig erstellten Datensatz, um den Zusammenhang zwischen den unabhängigen und abhängigen Variablen zu modellieren und die Regressionskoeffizienten zu ermitteln.

import numpy as np
from sklearn.linear_model import LinearRegression

# Generierung von 100 Datenpunkten, mit Werten zwischen 0 und 10
# mit zusätzlichem normalverteiltem Rauschen
n = 100
x = np.linspace(0, 10, n).reshape(-1, 1)
y = 2.0 * x.flatten() + 1.0 + np.random.normal(0, 2, n)

# Initialisierung und Training des linearen Regressionsmodells
model = LinearRegression()
model.fit(x, y)

Mehr erfahren: Machine Learning Mastery/Linear Regression for Machine Learning, GeeksforGeeks/Linear Regression in Machine learning

Logistische Regression

Die logistische Regression ist entgegen ihres Namens eine Klassifikationsmethode, die die Wahrscheinlichkeit einer Zugehörigkeit zu einer bestimmten Klasse berechnet. Dieser Ansatz ist besonders nützlich in Situationen, in denen zwischen zwei Klassen entschieden werden soll. In Abbildung 5 wird eine solche Situation beispielhaft dargestellt.

Abbildung 5: Klassifikation von Datenpunkten in zwei Klassen, anhand einer Entscheidungsfunktion

Folgende Eigenschaften weist die logistische Regression auf:

  • Verwendet die Logit-Funktion zur Modellierung der Wahrscheinlichkeit einer Zugehörigkeit.

  • In der Logit-Funktion werden Gewichte (w) für die Modellparameter auf die Eingabe (x) angewendet, zusammen mit einem Bias (b).

  • Basierend auf der Sigmoid-Funktion, werden Wahrscheinlichkeitswerte zwischen 0 und 1 erzeugt.

  • Ideal für Klassifikationsaufgaben, wie Spam-E-Mail-Erkennung oder Vorhersage von krankheitsbezogenen Ereignissen.

  • Ein spezifischer Algorithmus innerhalb des breiteren Aufgabentyps der Klassifikation.

Im kommenden Abschnitt werden die Vor- und Nachteile der logistischen Regression genauer betrachtet.

Vorteile:

  • Einfachheit und Effizienz: Die logistische Regression ist einfach zu implementieren und effizient in der Berechnung.

  • Interpretierbarkeit: Die Ergebnisse der logistischen Regression sind leicht interpretierbar, da die Wahrscheinlichkeiten direkt interpretiert werden können.

  • Geringer Rechenaufwand: Im Vergleich zu komplexeren Algorithmen erfordert die logistische Regression weniger Rechenressourcen.

Nachteile:

  • Einschränkung auf lineare Entscheidungsgrenzen: Die logistische Regression ist nur in der Lage, lineare Entscheidungsgrenzen zu modellieren, was ihre Anwendung in komplexen Klassifikationsproblemen einschränken kann.

  • Anfälligkeit für Ausreißer: Die logistische Regression kann empfindlich auf Ausreißer reagieren, was die Vorhersageleistung beeinträchtigen kann.

  • Abhängigkeit von der Merkmalsauswahl: Die Vorhersageleistung der logistischen Regression hängt stark von der Qualität und Relevanz der ausgewählten Merkmale ab.

Der gezeigte Code demonstriert die Anwendung einer logistischen Regression auf einen Datensatz mit zwei Klassen, um eine Klassifizierungsaufgabe durchzuführen und Vorhersagen für neue Datenpunkte zu treffen.

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split 
import matplotlib.pyplot as plt

iris = load_iris()
X = iris.data
y = iris.target

# Nur zwei Klassen für die binäre logistische Regression auswählen (z. B. Klassen 0 und 1)
X_binary, y_binary = X[y != 2], y[y != 2]

# Daten in Trainings- und Testdatensätze aufteilen
X_train, X_test, y_train, y_test = train_test_split(X_binary, y_binary, test_size=0.4, random_state=42)

# Logistisches Regressionsmodell erstellen und trainieren
logistic_model = LogisticRegression()
logistic_model.fit(X_train, y_train)

# Evaluierung auf Testdaten
accuracy = logistic_model.score(X_test, y_test)

Mehr erfahren: KDnuggets/Logistic Regression for Classification, builtin/How to Build a Logistic Regression Model for Classification

Last updated