Lineare Regression - Gradient Descent

Vorhersage des Immobilienwerts basierend auf Wohnfläche mit Normalisierung und Fehlerkontur im Parameterraum (w, b)

Regression: ŷ vs. x₁ und Fehlerquadrate
Fehlerkontur im Parameterraum (w₁, b)

Animation

Parameter

Statistiken

ŷ = w₁x₁ + b
w₁=1.000, b=50.000
MSE = --
R² = --
Iteration: 0

Erklärung: Lineare Regression für Immobilienbewertung

In diesem Beispiel modellieren wir den Wert einer Immobilie basierend auf ihrer Wohnfläche. Die lineare Regression sucht eine gerade Linie ŷ = w₁ · x₁ + b, die die Datenpunkte am besten approximiert. Hier repräsentiert x₁ die Wohnfläche in m² und y den Immobilienwert in Tausend Euro (k€).

\[ \hat{y} = w_1 \cdot x_1 + b \]
wobei \( w_1 \) der Preis pro Quadratmeter (in k€/m²) und \( b \) der Basiswert (z.B. Grundstückswert) ist.

Der Gradientenabstieg optimiert w₁ und b, indem er den Fehler (MSE) minimiert. Die Kontur zeigt den Fehler im Parameterraum – das Minimum ist der optimale Punkt. Die Fehlerquadrate visualisieren den quadratischen Abstand zwischen Vorhersage und tatsächlichem Wert.

Typische Werte: w₁ ≈ 2-4 k€/m², b ≈ 50-100 k€. Der Algorithmus konvergiert zum besten Modell.

Theoretische Grundlagen des Gradientenabstiegs

1. Loss Function (MSE)

Die Loss Function \( J(\hat{y}, y) \) misst den Fehler des Modells. Für die lineare Regression verwenden wir den Mean Squared Error (MSE), der den durchschnittlichen quadratischen Abstand zwischen den tatsächlichen Werten \( y_i \) und den vorhergesagten Werten \( \hat{y}_i \) berechnet.

\[ J(\hat{y}, y) = \text{MSE} = \frac{1}{n} \sum_{i=1}^n (y_i - \hat{y}_i)^2 \]
wobei \( \hat{y}_i = w \cdot x_i + b \) und \( n \) die Anzahl der Datenpunkte ist.

Das Ziel des Gradientenabstiegs ist es, w und b so anzupassen, dass \( J(\hat{y}, y) \) minimiert wird.

2. Gradient der Loss Function

Der Gradient gibt die Richtung des steilsten Anstiegs der Loss Function an. Wir berechnen die partiellen Ableitungen nach w und b:

\[ \frac{\partial J}{\partial w} = \frac{2}{n} \sum_{i=1}^n (\hat{y}_i - y_i) \cdot x_i \]
\[ \frac{\partial J}{\partial b} = \frac{2}{n} \sum_{i=1}^n (\hat{y}_i - y_i) \]

Diese Ableitungen zeigen, wie stark die Loss Function bei einer kleinen Änderung von w oder b ansteigt. Im Konturplot entspricht der Gradient der Steigung der Fehleroberfläche.

3. Update-Regeln für Weight und Bias

Im Gradientenabstieg werden w und b in der Richtung des negativen Gradienten aktualisiert, skaliert mit der Lernrate \( \mu_{lr} \), um die Loss zu verringern:

\[ w_{\text{new}} = w - \mu_{lr} \cdot \frac{\partial J}{\partial w} \]
\[ b_{\text{new}} = b - \mu_{lr} \cdot \frac{\partial J}{\partial b} \]

Die Lernrate \( \mu_{lr} \) (hier einstellbar) kontrolliert die Schrittgröße: Zu groß führt zu Oszillationen, zu klein zu langsamer Konvergenz. Der Algorithmus iteriert, bis das Minimum erreicht ist.

4. Feature Normalization für balanciertes Lernen

Aufgrund der unterschiedlichen Skalen (x₁ ≈ 50-200 m², während der Bias-Term konstant 1 ist) ist der Gradient für w₁ viel größer als für b. Dies führt zu unbalanciertem Lernen: w₁ ändert sich schnell, b fast gar nicht. Um dies zu beheben, normalisieren wir die Features mit Z-Score-Normalisierung:

\[ x_{\text{norm}} = \frac{x_1 - \mu_{x_1}}{\sigma_{x_1}} \]
\[ \hat{y} = w \cdot x_{\text{norm}} + b \]
wobei \( \mu_{x_1} \) der Mittelwert und \( \sigma_{x_1} \) die Standardabweichung der x-Werte ist (x_norm ≈ N(0,1)).

Dadurch haben die Gradienten ähnliche Größenordnungen, und w und b lernen gleichmäßig. Der Parameter w repräsentiert nun den Preis pro Standardabweichung (k€/σ), und b ist der erwartete Wert bei durchschnittlicher Fläche. Die effektive Steigung in Originalskala ist \( w * σ_{x_1} \).