4.4 Polynomiale Regression & Ridge-Regression
Nichtlineare Effekte mit einem linearen Modell
📄 04_linear_methods_ws26.pdf, Folie 24 zeigt den Auto-Datensatz (ISLR): Verbrauch in Meilen pro Gallone (mpg) gegen PS (horsepower) für 392 Autos. Die Punktwolke ist deutlich gekrümmt: Bei wenig PS fällt der mpg-Wert steil, bei viel PS flacht er ab. Eine Gerade (gelb) passt schlecht, ein Polynom zweiten Grades (blau) deutlich besser, ein Polynom fünften Grades (grün) schlängelt sich und schießt am rechten Rand nach oben.
Die Idee 📄 04_linear_methods_ws26.pdf, Folie 25: Man nimmt einfach als zusätzliches Merkmal auf:
( ist der zufällige Fehler.) Der Fit liefert:
| Koeffizient | Std.-Fehler | t-Statistik | p-Wert | |
|---|---|---|---|---|
| Intercept () | 56,9001 | 1,8004 | 31,6 | kleiner als 0,0001 |
| horsepower () | 0,0311 | kleiner als 0,0001 | ||
| horsepower² () | 0,0012 | 0,0001 | 10,1 | kleiner als 0,0001 |
Lesart: Der lineare Term ist negativ (mehr PS, weniger mpg), der quadratische positiv (der Abfall wird mit steigender PS-Zahl flacher). Der sehr kleine p-Wert von sagt: Der quadratische Term ist kein Zufall, die Krümmung ist echt. Beispiel bei 100 PS: mpg. (Mit den gerundeten Koeffizienten; bei großen PS-Zahlen machen sich Rundungsfehler in deutlich bemerkbar.)
Ergänzung: Standardfehler, t-Statistik und p-Wert stammen aus der klassischen Statistik (Regressionsoutput von statsmodels bzw. R). . Ein großer Betrag von (kleiner p-Wert) spricht dagegen, dass der wahre Koeffizient 0 ist.
Warum ist das immer noch „linear“?
Das ist die zentrale Einsicht: „Linear“ heißt linear in den Parametern , nicht in der Eingabe . Man erweitert die Designmatrix um Spalten 📄 04_linear_methods_ws26.pdf, Folie 27:
Dann ist wieder ein lineares Modell, und die Normalengleichung aus 4.3 liefert die Lösung ohne jede Änderung.
Ergänzung, nicht auf den Folien: Allgemein kann man jede feste Transformation verwenden, z. B. Polynome, Gaußglocken oder Sinusfunktionen, und das Modell mit der Normalengleichung lösen, indem man die Spalten in die Designmatrix schreibt. Das nennt man Basisfunktionen-Regression. Bei sehr vielen (oder unendlich vielen) Basisfunktionen hilft der Kernel-Trick (kernelized linear regression), siehe Kapitel 7 – Kernel.
Overfitting
Wenn höhere Potenzen helfen, warum nicht gleich Grad 9? 📄 04_linear_methods_ws26.pdf, Folie 27 zeigt das klassische Beispiel aus Bishop: 10 verrauschte Punkte (blau) einer Sinuskurve (grün), angepasst mit Polynomen vom Grad (rot):
| Ergebnis | |
|---|---|
| 0 | Konstante, viel zu einfach (Underfitting) |
| 1 | Gerade, immer noch zu einfach |
| 3 | trifft die Sinusform gut |
| 9 | geht exakt durch alle 10 Punkte, schwingt dazwischen aber wild (Overfitting) |
Warum trifft alle Punkte? Ein Polynom vom Grad 9 hat 10 Koeffizienten. Mit 10 Punkten hat man 10 Gleichungen für 10 Unbekannte, das System ist exakt lösbar. Das Modell lernt das Rauschen auswendig, statt die Struktur zu erkennen.
📄 04_linear_methods_ws26.pdf, Folie 28 zeigt den Fehler (root mean squared error, ) auf Trainings- und Testdaten:
- Trainingsfehler sinkt mit wachsendem immer weiter, bei ist er 0.
- Testfehler sinkt bis , bleibt dann flach und explodiert bei .
Der Trainingsfehler ist also kein gutes Maß für die Qualität eines Modells. Mehr dazu in Kapitel 5 – Modellbewertung (Bias-Varianz, Kreuzvalidierung).
Ergänzung: Beim Overfitting werden die Koeffizienten typischerweise riesig (bei Bishop in der Größenordnung von für ), mit wechselnden Vorzeichen, die sich gegenseitig fast aufheben. Genau da setzt Ridge an.
Ridge-Regression
Idee
📄 04_linear_methods_ws26.pdf, Folie 29 Man ergänzt die Verlustfunktion um einen Strafterm für große Gewichte:
- RSS ist die residual sum of squares, die Summe der quadrierten Residuen.
- ist ein Hyperparameter, der die Stärke der Strafe festlegt.
- Der Strafterm ist die quadrierte L2-Norm, man spricht von L2-Regularisierung (L2 regularisation).
Auf den Folien zusammengefasst:
- Es kostet, Parameter ungleich null zu haben.
- Die Parameter werden Richtung 0 gezogen (shrinkage).
- Ridge-Regression reduziert Overfitting.
- Man kann damit lineare Regression auch dann rechnen, wenn es mehr Parameter als Datenpunkte gibt.
- Ebenfalls populär ist die Lasso-Regression mit L1-Strafe .
Die Bilder zeigen das Polynom vom Grad 9:
| Ergebnis | |
|---|---|
| () | schon diese winzige Strafe glättet die Kurve, sie folgt der Sinusform gut |
| () | zu starke Strafe, die Kurve ist fast flach (Underfitting) |
steuert also stufenlos die Modellkomplexität: ist gewöhnliche lineare Regression, treibt alle gegen 0. Das passende wählt man mit Kreuzvalidierung (Kapitel 5).
In der Folienformel steht getrennt, und die Strafsumme läuft nur über . Das ist Absicht: Der Achsenabschnitt verschiebt die Kurve nur nach oben oder unten. Würde man ihn bestrafen, hinge das Ergebnis davon ab, wo der Nullpunkt der -Achse liegt.
Herleitung der geschlossenen Lösung
Ergänzung, nicht auf den Folien: Der Einfachheit halber seien die Daten zentriert (Mittelwerte von -Spalten und abgezogen), dann ist und man kann ihn weglassen. In Matrixform:
Gradient: Der erste Teil ist wie in 4.3, der Strafterm hat Ableitung :
Nullsetzen:
Der einzige Unterschied zur Normalengleichung: wird auf die Diagonale von addiert. (Wer den Bias in mitführt, setzt den zugehörigen Diagonaleintrag von auf 0.)
Warum funktioniert das auch für ? ist positiv semidefinit, alle Eigenwerte sind , aber manche können 0 sein (dann ist die Matrix singulär). hat die Eigenwerte , die für alle echt positiv sind. Damit ist die Matrix immer invertierbar, und unter den unendlich vielen perfekten Lösungen wird eine eindeutige ausgewählt.
Zahlenbeispiel: Shrinkage
Ergänzung: Die Punkte , , , diesmal ein Modell ohne Achsenabschnitt, . Dann ist und , also
| 0 | 1 | 14 | 100 | ||
|---|---|---|---|---|---|
| 1,643 | 1,533 | 0,821 | 0,202 |
Das Gewicht wird mit wachsendem kontinuierlich kleiner, aber nie exakt 0.
Ergänzung: Lasso (L1) setzt bei genügend großem einzelne Gewichte exakt auf 0 und wählt damit Merkmale aus (feature selection). Ridge (L2) schrumpft alle Gewichte, lässt aber keins ganz verschwinden. Lasso hat keine geschlossene Lösung.
Der Strafterm behandelt alle gleich. Misst man ein Merkmal in Millimetern statt Metern, wird sein Gewicht 1000-mal kleiner und kaum noch bestraft. Vor Ridge/Lasso die Merkmale daher standardisieren (Mittelwert 0, Standardabweichung 1). Das gilt besonders bei polynomialen Merkmalen, deren Potenzen völlig unterschiedliche Größenordnungen haben.
In scikit-learn
Ergänzung:
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import PolynomialFeatures, StandardScaler
from sklearn.linear_model import Ridge
model = make_pipeline(PolynomialFeatures(degree=9, include_bias=False),
StandardScaler(),
Ridge(alpha=1e-3)) # alpha entspricht lambda
model.fit(x.reshape(-1, 1), t)