Kurs
Wenn sich deine Daten krümmen, ergibt es keinen Sinn, eine Gerade zu verwenden, um neue Punkte zu schätzen. So verfehlst du das Muster, bekommst hohe Residuen und schlechte Vorhersagen. Reale Daten verhalten sich selten linear – egal, ob du untersuchst, wie sich eine Wirkstoffdosis auf die Reaktion auswirkt, wie Temperatur Materialspannungen beeinflusst oder wie sich Asset-Preise im Zeitverlauf bewegen.
Die Polynomregression löst das, indem sie die lineare Regression erweitert und statt Geraden Kurven anpasst. Du fügst einfach ein paar Terme höheren Grades hinzu – x², x³ – und dein Modell kann der tatsächlichen Form deiner Daten folgen.
In diesem Artikel zeige ich dir, was Polynomregression ist, die dahinterstehende Mathematik, wie du sie in Python umsetzt und wie du die häufigste Falle vermeidest: Overfitting.
Wenn du neu im Thema Machine Learning bist, lies zuerst unser Tutorial Essentials of Linear Regression in Python.
Was ist Polynomregression?
Polynomregression ist der Algorithmus, zu dem du greifst, wenn eine Gerade deine Daten nicht beschreibt.
Lineare Regression modelliert den Zusammenhang zwischen Variablen als Gerade. Das funktioniert, wenn die Beziehung tatsächlich linear ist – aber das ist in der Praxis selten der Fall. Denk an den Zusammenhang zwischen Bremsweg und Geschwindigkeit oder an die Wachstumsrate einer Pflanze in Abhängigkeit von Dünger. Diese Beziehungen sind gekrümmt. Eine Gerade passt hier nicht gut, egal was du tust.
Die Polynomregression erweitert die lineare Regression, indem sie Terme höheren Grades zur Gleichung hinzufügt. Statt y = b0 + b1x passt du etwas wie y = b0 + b1x + b2x² + b3x³ an. Der Grad des Polynoms – das n in „Polynom n-ten Grades“ – steuert, wie oft die Kurve abbiegen kann.
Kurz gesagt ist der Unterschied zwischen beiden:
-
Lineare Regression: Passt eine Gerade. Ein Koeffizient pro Feature, ein Freiheitsgrad in der Kurve.
-
Polynomregression: Passt eine Kurve. Jeder zusätzliche Term (
x²,x³, …) gibt dem Modell mehr Flexibilität, der Form der Daten zu folgen.

Lineare vs. Polynomregression
Unter der Haube ist Polynomregression trotzdem ein lineares Modell. „Linear“ bezieht sich darauf, wie das Modell seine Koeffizienten behandelt, nicht auf die Form der resultierenden Kurve. Du fügst neue Features hinzu (x², x³) und passt darauf eine lineare Gleichung an.
Wann setzt du sie also ein?
Nutze Polynomregression, wenn das Residuen-Diagramm deines linearen Modells ein Muster zeigt – ein klares Zeichen für Nichtlinearität. Sie ist auch sinnvoll, wenn deine Fachexpertise eine gekrümmte Beziehung nahelegt, etwa in Physik, Biologie oder Ökonomie.
Der Haken: Polynome hohen Grades können instabil werden. Grad 2 oder 3 deckt die meisten realen Kurven ab; darüber hinaus passt du meist eher Rauschen als Signal an.
Warum Polynomregression verwenden?
Die meisten realen Zusammenhänge zwischen Variablen sind nicht linear.
Eine Gerade kommt vielleicht nah ran, aber „nah dran“ reicht nicht, wenn du Empfindliches vorhersagst. Wenn sich die Beziehung in den Daten biegt, verfehlt ein lineares Modell diese Biegung systematisch.
Polynomregression macht es besser, indem sie dem Modell erlaubt, sich zu krümmen. Statt eine Gerade durch deine Daten zu zwingen, passt du eine Kurve an, die der Form der Beziehung folgen kann.
Hier ein paar Bereiche in verschiedenen Branchen, in denen das einen echten Unterschied macht:
- Biologie und Medizin: Dosis-Wirkungs-Beziehungen sind selten linear. Eine geringe Dosis bewirkt wenig, eine mittlere wirkt gut, eine hohe verursacht Nebenwirkungen. Diese S-förmige Kurve erfordert ein Polynommodell.
- Ingenieurwesen: Spannungs-Dehnungs-Kurven von Materialien, aerodynamischer Widerstand und Wärmeausdehnung folgen nichtlinearen Mustern, die sich gut mit Polynomregression abbilden lassen.
- Finanzen: Renditen, Optionspreise und Nachfragekurven zeigen oft abnehmende oder zunehmende Grenzeffekte, die eine Gerade nicht erfassen kann.
- Machine-Learning-Pipelines: Polynomfeatures sind ein schneller Weg, einem linearen Modell Nichtlinearität zu geben, ohne auf einen komplexeren Algorithmus zu wechseln.
Der gemeinsame Nenner: Der Zusammenhang zwischen Input und Output ändert sich bei unterschiedlichen x-Werten. Lineare Regression nimmt eine konstante Änderung an. Polynomregression nicht.
Aber: Polynomregression ist kein Allheilmittel.
Am besten wirkt sie, wenn Fachexpertise eine gekrümmte Beziehung nahelegt oder wenn dein Residuenplot klar ein Muster zeigt, das eine Gerade nicht behebt. Setze sie mit einem konkreten Ziel ein – nicht nur, weil dein lineares Modell ein zu niedriges R² hat.
Die Mathematik hinter der Polynomregression verstehen
Ein bisschen Mathematik hilft, Polynomregression besser zu verstehen.
Polynomterme
In der linearen Regression sieht dein Modell so aus:

Formel der linearen Regression
Das ist eine Eingangsvariable, ein Koeffizient, eine Gerade. Polynomregression erweitert das durch Terme höheren Grades:

Formel der Polynomregression
Jeder neue Term – x², x³ und so weiter – gibt dem Modell eine zusätzliche „Biegung“. Ein Polynom 2. Grades kann eine einzelne Krümmung abbilden. Ein Polynom 3. Grades kann die Richtung einmal ändern. Der Grad n steuert die Flexibilität.
Der zugrunde liegende Algorithmus bleibt derselbe. Du fügst nur neue Features hinzu. x² wird als eigene Eingangsvariable behandelt – genau wie x. Das Modell passt weiterhin eine lineare Gleichung an – nur eben auf transformierten Features.
Kleinste-Quadrate-Schätzung
Das Fitten einer Polynomregression funktioniert wie bei der linearen Regression – nämlich mit der Methode der kleinsten Quadrate.
Die Idee ist, die Koeffizienten zu finden, die die Summe der quadrierten Residuen zu minimieren:

Formel der quadrierten Residuen (SSR)
Jede quadrierte Differenz ist ein Residuum – die Lücke zwischen Vorhersage und Beobachtung. Durch das Quadrieren heben sich negative und positive Fehler nicht auf, und große Fehler werden stärker bestraft als kleine.
In der Praxis übernimmt das deine Bibliothek. Zu wissen, dass kleinste Quadrate das Ziel sind, erklärt aber, warum Ausreißer Polynommodelle so stark beeinträchtigen – ein einzelnes großes Residuum wird quadriert und zieht die Koeffizienten in seine Richtung.
Koeffizienten interpretieren
In der linearen Regression hat b1 eine einfache Interpretation: Erhöht sich x um eins, ändert sich y um b1.
Bei der Polynomregression ist es komplexer. Enthält dein Modell b_1x + b_2x^2, hängt der Effekt von x auf y vom aktuellen Wert von x ab – du kannst b2 nicht isoliert interpretieren. Die Steigung der Kurve ändert sich ständig, was du an der Ableitung nach x siehst:

Ableitung nach x
Die Steigung ist selbst eine Funktion von x. Das heißt: Die Auswirkung einer Einheitenänderung in x ist an jedem Punkt der Kurve anders.
Deshalb solltest du in Polynommodellen keine einzelnen Koeffizienten deuten. Betrachte stattdessen die Kurve als Ganzes. Plotte deine Vorhersagen gegen die Daten.
Anwendungen der Polynomregression in der Data Science
Polynomregression taucht in vielen Feldern auf, weil gekrümmte Beziehungen in echten Daten allgegenwärtig sind.
Finanzen
Finanzdaten verlaufen selten geradlinig.
Asset-Preise, Umsatzwachstum und Nachfragekurven beschleunigen, verlangsamen oder drehen je nach Marktbedingungen um. Ein lineares Modell unterstellt eine konstante Änderungsrate – das ist fast nie realistisch. Polynomregression erlaubt dir, diese Wechsel zu modellieren, etwa wie die Nachfrage erst langsam und dann stark einbricht, wenn der Preis eine Schwelle überschreitet.
Auch für Trendanalysen über die Zeit ist sie hilfreich. Wenn du eine Kurve an historische Preisdaten anpasst oder modellierst, wie eine Kennzahl in verschiedenen Phasen eines Konjunkturzyklus wächst, schätzt ein Polynom zweiten oder dritten Grades die Form oft deutlich besser als eine Gerade.
Ingenieurwesen
Physikalische Prozesse sind Paradebeispiele für nichtlineare Zusammenhänge.
Spannung und Dehnung in Materialien, Strömungsmechanik, Wärmeausdehnung und aerodynamischer Widerstand folgen Kurven, nicht Geraden. Viele Grundgleichungen der Physik sind von Natur aus polynomial. Polynomregression bietet dir einen datengetriebenen Weg, diese Kurven zu fitten, wenn Messungen vorliegen, aber keine saubere geschlossene Formel.
Ein gutes Beispiel ist der Luftwiderstand, der mit dem Quadrat der Geschwindigkeit steigt. Ein lineares Modell unterschätzt den Widerstand bei hohen Geschwindigkeiten; ein Polynom 2. Grades bildet die Beziehung korrekt ab.
Machine Learning
Im Machine Learning wird Polynomregression oft als Feature-Engineering-Technik genutzt, nicht als eigenständiges Modell.
Durch das Hinzufügen polynomialer Terme – x², x³, Interaktionsterme – gibst du einem linearen Modell die Fähigkeit, nichtlineare Muster zu lernen, ohne auf einen komplexeren Algorithmus umzusteigen. Das ist ein gängiger erster Schritt, wenn dein lineares Modell unterfitted und du mehr Flexibilität brauchst, bevor du zu Decision Trees oder Neural Networks greifst.
Auch als Baseline ist es nützlich.
Bevor du ein komplexeres Modell trainierst, zeigt dir eine Polynomregression, wie viel Varianz eine einfache Kurve erklären kann. Wenn ein Polynom 3. Grades schon fast alles abdeckt, brauchst du womöglich nichts Komplexeres.
Den richtigen Polynomgrad wählen
Die Wahl des Polynomgrads ist eine der wichtigsten Entscheidungen. Liegt er in die eine oder andere Richtung daneben, wird dein Modell ungenauer.
Zum Glück reichen ein paar Zeilen Python-Code.
Overfitting vs. Underfitting
Underfitting passiert, wenn der Grad zu niedrig ist. Ein Polynom 1. Grades auf gekrümmten Daten verfehlt das Muster – hohe Verzerrung, schlechte Vorhersagen und schwache Leistung auf Trainings- und neuen Daten.
Overfitting ist das Gegenteil – und tückischer, weil es zunächst gut aussieht. Ein hochgradiges Polynom kann durch jeden Punkt im Trainingssatz verlaufen und fast null Fehler zeigen. Tatsächlich memoriert das Modell aber nur das Rauschen und bricht auf neuen Daten ein.
Du siehst das, wenn du Trainings- und Testfehler über die Grade vergleichst:
import numpy as np
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
np.random.seed(42)
# Generate sample data
x = np.linspace(-3, 3, 80).reshape(-1, 1)
y = 0.6 * x.ravel()**2 - x.ravel() + np.random.normal(0, 0.6, 80)
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)
for deg in [1, 2, 12]:
poly = PolynomialFeatures(deg)
model = LinearRegression()
model.fit(poly.fit_transform(x_train), y_train)
train_err = mean_squared_error(y_train, model.predict(poly.transform(x_train)))
test_err = mean_squared_error(y_test, model.predict(poly.transform(x_test)))
print(f"Degree {deg:>2} | Train MSE: {train_err:.4f} | Test MSE: {test_err:.4f}")

MSE bei unterschiedlichen Graden
Oder visuell dargestellt:

Datenfit mit verschiedenen Polynomgraden
Grad 1 zeigt hohe Fehler auf beiden Sets – das ist Underfitting. Grad 2 ist gut ausbalanciert. Grad 12 hat einen niedrigeren Trainingsfehler, aber deutlich höheren Testfehler – das ist Overfitting.
Cross-Validation
Der richtige Weg, den besten Grad zu finden, ist Cross-Validation – konkret k-fold Cross-Validation.
Die Idee: Teile deine Daten in k Teilmengen, trainiere auf k-1 davon und teste auf der jeweils zurückgehaltenen. Wiederhole das so, dass jede Teilmenge einmal Testset war. Mittlere den Fehler über alle Folds, wiederhole für jeden Kandidatengrad und wähle den mit dem niedrigsten durchschnittlichen Testfehler.
Die Implementierung ist viel einfacher als die Erklärung:
import numpy as np
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import cross_val_score
from sklearn.pipeline import make_pipeline
import matplotlib.pyplot as plt
np.random.seed(42)
# Generate sample data
x = np.linspace(-3, 3, 80).reshape(-1, 1)
y = 0.6 * x.ravel()**2 - x.ravel() + np.random.normal(0, 0.6, 80)
# Test degrees 1 through 10
degrees = range(1, 11)
mean_errors = []
for deg in degrees:
model = make_pipeline(PolynomialFeatures(deg), LinearRegression())
scores = cross_val_score(model, x, y, cv=5, scoring="neg_mean_squared_error")
mean_errors.append(-scores.mean())
print(f"Degree {deg:>2} | Mean error: {-scores.mean():.4f}")
best_degree = np.argmin(mean_errors) + 1

Fehlervgl. über Polynomgrade
Oder als Grafik:

Cross-Validation: Fehlervergleich
Der CV-Fehler sinkt, solange die zusätzlichen Polynomterme nützlich sind, und steigt wieder, sobald das Modell überfittet.
Wenn zwei Grade einen ähnlichen CV-Fehler liefern, nimm den niedrigeren. Ein einfacheres Modell mit gleicher Leistung ist immer die bessere Wahl.
Wichtige Aspekte und Grenzen
Es gibt ein paar Fallstricke, die bei Polynomregression zu falschen Schlüssen führen können. Schauen wir sie uns an.
Empfindlichkeit gegenüber Ausreißern
Ausreißer beeinflussen Polynomregression stärker als lineare Regression.
Bei kleinsten Quadraten wird jedes Residuum quadriert, bevor summiert wird. Ein einzelner Punkt weit weg vom Trend trägt überproportional zum Fehler bei, und das Modell verbiegt seine Kurve, um diesen Fehler zu verringern – auch wenn es den Fit anderswo verschlechtert.
Dieser Effekt verstärkt sich mit steigendem Grad. Ein hochgradiges Polynom hat genug Flexibilität, einem Ausreißer „hinterherzulaufen“, was die Kurve vom Großteil deiner Daten wegzieht, nur um einen Ausreißer zu treffen.
Ein Ausweg ist Datenbereinigung vor dem Fitten. Plotte deine Daten, identifiziere Ausreißer und entscheide, ob sie Signal oder Rauschen sind. Sind sie Rauschen – Messfehler, Tippfehler, korrupte Einträge – entferne sie. Sind sie echt, erwäge robustere Verfahren wie RANSAC oder Huber-Regression.
Overfitting
Mit jedem Polynomterm erhöhst du die Flexibilität. Irgendwann hilft sie nicht mehr und das Modell passt zufälliges Rauschen statt Muster an. Das Ergebnis ist eine Kurve, die auf Trainingsdaten glänzt und auf neuen Daten versagt.
Tückisch ist, dass Overfitting unsichtbar bleibt, wenn du nur den Trainingsfehler anschaust. Ein Polynom 10. Grades hat fast immer einen geringeren Trainings-MSE als eines 2. Grades. Das macht es nicht automatisch besser.
So gehst du vor:
- Starte niedrig: Teste Grad 2 oder 3, bevor du höher gehst. Die meisten Kurven brauchen nicht mehr.
- Immer auf zurückgehaltenen Daten evaluieren: Trainingsfehler allein sagt nichts über Generalisierung.
- Cross-Validation nutzen: Finde den Grad, ab dem der Testfehler nicht mehr sinkt.
- Auf die Kurve achten: Wenn dein Polynom außerhalb des Trainingsbereichs wilde Ausschläge macht, ist das ein Overfitting-Signal.
Polynomregression funktioniert am besten, wenn du gute Gründe für eine gekrümmte Beziehung hast und den Grad niedrig halten kannst.
Alternativen zur Polynomregression
Polynomregression ist nicht immer das richtige Werkzeug – diese Alternativen können besser passen.
Splines
Splines lösen das Problem der globalen Instabilität.
Bei einem Polynom 10. Grades beeinflusst jeder Datenpunkt alle Koeffizienten. Eine Änderung in einem Bereich wirkt sich auf die Kurve überall aus. Splines umgehen das, indem sie die Daten in Segmente teilen und für jedes ein separates Polynom niedrigen Grades fitten. Die Segmente werden an Knoten verbunden, mit Bedingungen, die die Gesamtkurve an den Übergängen glatt halten.
Das Ergebnis ist eine Kurve, die dort flexibel ist, wo es nötig ist, und sonst stabil bleibt.
In Python bieten scipy und scikit-learn solide Spline-Implementierungen:
from scipy.interpolate import UnivariateSpline
spline = UnivariateSpline(x, y, k=3)
y_pred = spline(x_new)

Spline vs. hochgradiges Polynom
Greife zu Splines, wenn sich deine Daten in verschiedenen Bereichen unterschiedlich verhalten oder wenn eine einzelne Polynomkurve nur mit hohem Grad die Form trifft.
Support Vector Regression
Support Vector Regression (SVR) fährt einen anderen Ansatz.
Sie minimiert nicht die quadrierte Fehlersumme über alle Punkte, sondern sucht eine Funktion, die für möglichst viele Punkte innerhalb eines definierten Fehlermargins bleibt, und ignoriert Punkte innerhalb dieser Marge. Dadurch ist sie weniger ausreißerempfindlich als Polynomregression.
Die Verbindung zur Polynomregression entsteht über den Kernel-Trick. SVR mit polynomiellem Kernel kann ähnliche Nichtlinearitäten abbilden – bietet aber durch Regularisierung bessere Generalisierung und mehr Kontrolle über den Fit.
from sklearn.svm import SVR
model = SVR(kernel="poly", degree=3, C=1.0, epsilon=0.1)
model.fit(x_train, y_train)

SVR vs. hochgradiges Polynom
SVR ist eine gute Wahl, wenn du Ausreißer nicht entfernen kannst, wenn du die Bias-Varianz-Abwägung fein steuern musst oder wenn Polynomregression trotz Cross-Validation weiter überfittet.
Fazit
In diesem Artikel hast du gesehen, wie Polynomregression die lineare Regression erweitert, um Kurven zu fitten, wie die Methode der kleinsten Quadrate die besten Koeffizienten findet und warum die Einzelinterpretation dieser Koeffizienten wenig aussagt.
Der gewählte Grad ist entscheidend. Zu niedrig führt zu Underfitting, zu hoch zu Overfitting. Cross-Validation hilft dir, den Sweet Spot objektiv zu finden. Und wenn Polynomregression nicht passt, sind Splines und SVR starke Alternativen.
Am besten baust du dir ein Gefühl auf, indem du es auf deinen Daten ausprobierst. Such dir einen Datensatz mit vermuteter Nichtlinearität, fitte zuerst ein lineares Modell, plotte die Residuen und sieh dir an, was Polynomregression anders macht. Lies unseren Guide zu Non-Linear Models and Insights Using R, um die Pipeline in der Praxis zu sehen.
Polynomial Regression FAQs
What is polynomial regression, and when should I use it?
Polynomregression ist eine Erweiterung der linearen Regression, die statt einer Geraden eine gekrümmte Linie an deine Daten anpasst. Du nutzt sie, wenn der Zusammenhang zwischen Eingangs- und Ausgangsvariablen nicht linear ist – zum Beispiel, wenn ein Residuenplot des linearen Modells ein Muster zeigt. Sie ist ein guter erster Schritt, bevor du zu komplexeren Modellen wie Decision Trees oder Neural Networks greifst.
How is polynomial regression different from linear regression?
Lineare Regression passt eine Gerade, indem sie den Zusammenhang als y = b0 + b1x modelliert. Polynomregression ergänzt Terme höheren Grades wie x² und x³ und gibt dem Modell genug Flexibilität, Kurven in den Daten zu folgen. Beide verwenden dieselbe Kleinste-Quadrate-Schätzung – Polynomregression behandelt die zusätzlichen Terme einfach als weitere Eingangsfeatures.
What are the biggest risks of using polynomial regression?
Die zwei größten Risiken sind Overfitting und Ausreißerempfindlichkeit. Ein Polynom hohen Grades kann das Rauschen in deinen Trainingsdaten memorieren und auf neuen Daten schlecht abschneiden. Ausreißer sind gefährlich, weil bei kleinsten Quadraten jedes Residuum quadriert wird – ein einzelner Ausreißer kann die Kurve vom Rest deiner Daten wegziehen.
How do I choose the right degree for my polynomial regression model?
Starte mit Grad 2 oder 3 – die meisten realen, gekrümmten Beziehungen brauchen nicht mehr. Verwende anschließend k-fold Cross-Validation, vergleiche den durchschnittlichen Testfehler über die Kandidatengrade und wähle den Grad, bei dem sich der Testfehler nicht weiter verbessert. Wenn zwei Grade ähnlich gut sind, nimm den niedrigeren.
When should I use splines or SVR instead of polynomial regression?
Nutze Splines, wenn sich deine Daten in verschiedenen Bereichen unterschiedlich verhalten oder wenn ein einzelnes Polynom am Rand deines Wertebereichs instabil wird. Greife zu SVR mit polynomiellem Kernel, wenn Ausreißer unvermeidlich sind und du ein Modell brauchst, das sich ihnen nicht „verbiegt“. Beide Alternativen geben dir mehr Kontrolle über den Fit – bei etwas geringerer Interpretierbarkeit.



