Lineare Regression
Die lineare Regression zählt zu den grundlegendsten und am häufigsten verwendeten Verfahren des überwachten Lernens. Sie bildet das Fundament für zahlreiche weiterführende Techniken, wie zum Beispiel Neuronale Netze. Im Kern modelliert sie den Zusammenhang zwischen einer oder mehreren Merkmalen (\(x_i\)) und einer kontinuierlichen Zielgröße (\(y\)). Dabei kann das Modell sowohl in skalarer als auch in Matrix-Notation formuliert werden. Für die Schätzung der Parameter (Koeffizienten \(\beta\)) haben sich insbesondere zwei Ansätze etabliert: die direkte Methode mittels Normalengleichung und die iterative Methode per Gradient Descent.
Notation
- \(\mathbf{y}\): \(m \times 1\)-Vektor der Zielwerte
- \(\mathbf{X}\): \(m \times (n+1)\)-Designmatrix mit \(m\) Stichproben und \(n\) Merkmalen.
Die erste Spalte enthält meist Einsen für den Intercept (\(\beta_0\)). - \(\beta\): \((n+1) \times 1\)-Vektor der Regressionskoeffizienten
- \(\epsilon\): \(m \times 1\)-Vektor der Fehler (Residuen)
\(\beta_0\): Der Intercept (Achsenabschnitt), der den Ausgangswert von \(y\) repräsentiert, wenn alle \(x_i = 0\) sind.
\(\beta_1, \beta_2, \dots, \beta_n\): Die Koeffizienten, die den Einfluss der jeweiligen unabhängigen Variablen \(x_1, x_2, \dots, x_n\) auf \(y\) messen.
\(\epsilon\): Der Fehlerterm (Residuum).
Hinweis: \(n\) bezeichnet die Anzahl der Merkmale, nicht die Anzahl der Stichproben.
Direkte Methode
Die direkte Methode löst die Koeffizientenbestimmung in einem Schritt durch die Normalengleichung:
Vorgehensweise
- Designmatrix erstellen: Bilde \(\mathbf{X}\) aus allen Beobachtungen und Merkmalen.
- Matrixprodukte berechnen: Bestimme \(\mathbf{X}^T \mathbf{X}\) und \(\mathbf{X}^T \mathbf{y}\).
- Matrixinversion: Invertiere \((\mathbf{X}^T \mathbf{X})\), sofern sie nicht singulär ist.
- Koeffizienten ermitteln: Multipliziere \((\mathbf{X}^T \mathbf{X})^{-1}\) mit \(\mathbf{X}^T \mathbf{y}\), um \(\hat{\beta}\) zu erhalten.
- Direkte Berechnung ohne zusätzliche Hyperparameter.
- Analytische Lösung, die in einem Schritt vorliegt.
- Aufwendig bei sehr großen Datensätzen.
- Empfindlich gegenüber Multikollinearität.
- Nicht anwendbar, wenn \(\mathbf{X}^T \mathbf{X}\) nicht invertierbar ist.
Hinweis zur Berechnungskomplexität
Warum ist die direkte Methode besonders aufwendig?
Mehr dazu: Optimierung von Algorithmen durch Verständnis der Berechnungskomplexität
Dort ist eine detaillierte Analyse, warum das Invertieren von Matrizen eine kubische Komplexität \(O(p^3)\) haben kann.
# Erweiterung der Feature-Matrix um den Bias-Term (Spalte mit Einsen)
X_b = np.c_[np.ones((m, 1)), X]
# Berechnung der Regressionskoeffizienten
theta_best = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y)
print("Direkte Methode (Normalengleichung):")
print("Intercept:", theta_best[0][0])
print("Steigung:", theta_best[1][0])
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(42)
m = 100 # Anzahl der Stichproben
X = 2 * np.random.rand(m, 1) # Ein Merkmal
y = 4 + 3 * X + np.random.randn(m, 1) # Lineare Beziehung plus Rauschen
plt.scatter(X, y, color='blue', label='Daten')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Generierte Daten für lineare Regression')
plt.legend()
plt.show()
Iterative Methode
Diese Methode nähert die Lösung schrittweise (Gradient Descent) an, indem sie der Richtung des steilsten Abstiegs der Kostenfunktion folgt (z. B. des mittleren quadratischen Fehlers, MSE).
Kostenfunktion (Beispiel: MSE)
Hinweis: Oft wird der MSE mit \(\tfrac{1}{2m}\) statt \(\tfrac{1}{m}\) gewichtet, was den Faktor 2 im Gradienten wegfallen lässt.
Vorgehensweise
1. Initialisierung
Wähle einen Startwert \(\beta^{(0)}\) (z. B. den Nullvektor).
2. Gradient berechnen
Für MSE mit \(\tfrac{1}{m}\) ergibt sich:
Mit \(\tfrac{1}{2m}\) würde der Faktor 2 wegfallen:
3. Update-Regel
Aktualisiere die Koeffizienten über eine Lernrate \(\alpha\):
4. Iteration
Wiederhole das Update, bis die Änderung von \(\beta\) klein wird oder eine definierte Anzahl an Iterationen erreicht ist.
- Keine Matrixinversion erforderlich, daher sehr gut für große Datensätze.
- Flexibel erweiterbar (z. B. durch Regularisierung).
- Wahl der Lernrate \(\alpha\) ist kritisch (Konvergenz vs. Laufzeit).
- Häufig viele Iterationen nötig.
eta = 0.1 # Lernrate
n_iterations = 1000
theta = np.random.randn(2, 1) # zufällige Initialisierung
for iteration in range(n_iterations):
gradients = 2/m * X_b.T.dot(X_b.dot(theta) - y)
theta = theta - eta * gradients
print("\nIterative Methode (Gradient Descent):")
print("Intercept:", theta[0][0])
print("Steigung:", theta[1][0])
Annahmen und Voraussetzungen
Für die klassische lineare Regression gelten einige grundlegende Annahmen, die in der Praxis oft nur näherungsweise erfüllt sind:
- Linearität: Die Beziehung zwischen den unabhängigen Variablen und der Zielgröße ist linear.
- Homoskedastizität: Die Varianz der Residuen (Fehler) bleibt für alle Ausprägungen von \(x\) konstant.
- Normalverteilung der Fehler: Die Fehler sind normalverteilt (wichtig für statistische Tests und Konfidenzintervalle).
- Unabhängigkeit der Fehler: Keine Autokorrelation der Residuen.
Wenn diese Voraussetzungen verletzt sind, kann das Modell unzuverlässig werden oder die Interpretation der Koeffizienten wird schwieriger.
Regularisierung
Bei schlecht konditionierten Matrizen \(\mathbf{X}^T \mathbf{X}\) oder sehr vielen Merkmalen kann die Normalengleichung numerisch instabil werden. Hier setzen Regularisierungsverfahren wie Ridge (L2-Regularisierung) oder Lasso (L1-Regularisierung) an:
- Ridge Regression ergänzt \(\mathbf{X}^T \mathbf{X}\) um \(\lambda \mathbf{I}\), was die Invertierbarkeit fördert.
- Lasso Regression fügt einen L1-Term hinzu, der einzelne Merkmale stark abwerten kann und somit eine Feature-Selektion ermöglicht.
Zusammenfassung
Lineare Regression
Grundlegender Algorithmus für das überwachte Lernen und Basis vieler weiterführender Modelle.
Skalare Notation
Matrix-Notation
Direkte Methode (Normalengleichung)
Iterative Methode (Gradient Descent)
Wichtige Voraussetzungen
Linearität, Homoskedastizität, Normalverteilung und Unabhängigkeit der Fehler.
Regularisierung
Verfahren wie Ridge oder Lasso bei schwer invertierbaren Matrizen oder vielen Merkmalen.
Diese Notationen, Methoden und Erweiterungen (Regularisierung) bieten unterschiedliche Wege, das Regressionsproblem zu lösen. Die direkte Methode ermöglicht eine analytische Lösung, während sich die iterative Methode vor allem für große oder schlecht konditionierte Datensätze eignet.