Kurs
Weißt du, warum dein Modell auf Trainingsdaten 99% Genauigkeit erzielt, in der Praxis aber kaum etwas richtig vorhersagt?
Es gibt einen Unterschied zwischen einem Modell, das auswendig lernt, und einem, das wirklich lernt. Generalisierung ist das Ziel von Machine Learning – du willst Vorhersagen, die auch auf Daten halten, die das Modell noch nie gesehen hat, nicht nur auf den Trainingsdaten. Ist das nicht der Fall, landet man fast immer in einem von zwei Extremen.
Diese beiden Extreme sind Overfitting und Underfitting. Du musst wissen, mit welchem du es zu tun hast, bevor du es beheben kannst.
In diesem Artikel zeige ich dir, wie du Overfitting und Underfitting erkennst, warum sie entstehen und welche praktischen Schritte dich zur richtigen Balance führen.
Was ist Underfitting?
Underfitting entsteht, wenn dein Modell zu simpel ist, um das tatsächliche Geschehen in den Daten abzubilden.
Stell dir vor, du sagst Wohnpreise mit einer einzigen Regel voraus: „Jedes Haus kostet 300.000 $.“ Diese Regel ist fast überall falsch. Sie ignoriert Viertel, Quadratmeterzahl, Anzahl der Schlafzimmer, Garagenplatz oder Baujahr. Das Modell ist viel zu unflexibel, um dem Muster zu folgen.
Underfitting erkennst du immer gleich. Die Trainingsgenauigkeit ist niedrig, und die Testgenauigkeit ist ebenfalls niedrig. Beide Werte sind schlecht – vor allem aber sind sie es gemeinsam.
Ein Klassiker ist eine Gerade, die auf gekrümmte Daten gefittet wird. Die Linie schneidet die Mitte und verfehlt die Form. Mehr Trainingsdaten helfen nicht, weil das Modell die Beziehung grundsätzlich nicht darstellen kann.

Underfitting-Beispiel
Was ist Overfitting?
Overfitting ist das Gegenproblem. Das Modell ist zu komplex.
Anstatt das allgemeine Muster zu lernen, merkt es sich den Trainingssatz. Jeder Rauschpunkt, jeder Ausreißer, jedes Auf und Ab, jeder Zufall in den Daten wird behandelt, als wäre es ein echtes Muster. Das Modell wird auf die Trainingsdaten nahezu perfekt zugeschnitten.
Das Gute an Overfitting: Es ist leicht zu erkennen. Die Trainingsgenauigkeit sieht großartig aus, aber die Testgenauigkeit ist miserabel.
Denk an eine Studentin, die Prüfungsantworten Wort für Wort auswendig lernt, ohne den Stoff zu verstehen. Sie punktet im Probetest und scheitert wahrscheinlich in der echten Prüfung.

Overfitting-Beispiel
Overfitting vs. Underfitting: Die wichtigsten Unterschiede
Nachdem du beide gesehen hast, ist der Unterschied leichter zu erkennen. Underfitting-Modelle versagen auf Daten, die sie gesehen haben. Overfitting-Modelle versagen auf Daten, die sie nicht gesehen haben.
Während des Trainings zeigen sie unterschiedliche Muster:
- Underfitting äußert sich als durchweg flache, mittelmäßige Leistung – das Modell lernt nirgendwo wirklich etwas.
- Overfitting zeigt sich als Lücke: Trainingsscores steigen weiter, während Testscores stagnieren oder mit der Zeit schlechter werden.
Die Ursachen spiegeln sich ebenfalls. Underfitting kommt von zu wenig: zu einfachen Modellen und fehlenden Features. Overfitting kommt von zu viel: zu komplexen Modellen und zu vielen Features.
Hier ist eine Zusammenfassung der beiden:

Underfitting im Vergleich zu Overfitting
So erkennst du Overfitting und Underfitting
In der Theorie zu wissen, wie Underfitting und Overfitting aussehen, ist das eine – sie in deinen eigenen Modellen zu erwischen, ist das andere.
Am einfachsten vergleichst du Trainingsfehler und Testfehler und betrachtest Lernkurven.
Training vs. Testfehler
Der schnellste Check: Teile deine Daten in Trainings- und Testsatz, trainiere das Modell und betrachte den Fehler in beiden.
Bei Underfitting sind beide Fehler hoch. Das Modell hat die Trainingsdaten nicht gut gelernt und wird auf unbekannten Daten nicht besser abschneiden. Das Ergebnis ist auf beiden Seiten schwach.
Bei Overfitting ist der Trainingsfehler sehr niedrig, während der Testfehler hoch bleibt. Das Modell hat die Trainingsdaten auswendig gelernt, doch dieses Wissen überträgt sich nicht.

Visualisierung: Trainings- vs. Testfehler
Analysiere die Lücke zwischen diesen beiden Werten. Eine kleine Lücke mit hohen Fehlern deutet auf Underfitting hin. Eine große Lücke mit niedrigem Trainingsfehler und hohem Testfehler deutet auf Overfitting hin. Eine kleine Lücke mit niedrigen Fehlern auf beiden Seiten ist das Ziel, denn sie zeigt, dass das Modell die wahre Datenstruktur gelernt hat.
Lernkurven
Lernkurven stellen Trainings- und Validierungsfehler in Abhängigkeit von der Größe des Trainingssatzes oder den Trainingsiterationen dar. Sie zeigen, was beim Lernen im Modell passiert.
Bei einem underfitten Modell flachen beide Kurven schnell auf hohem Fehler ab. Mehr Daten helfen nicht, weil das Modell das Muster grundsätzlich nicht darstellen kann. Beide Kurven bleiben hoch.

Kurven eines underfitten Modells
Bei einem overfitten Modell fällt die Trainingskurve gegen null, während die Validierungskurve hoch bleibt. Die Lücke zwischen beiden wird mit fortschreitendem Training größer. Genau diese wachsende Lücke ist Overfitting in der Grafik.

Kurven eines overfitten Modells
Ein gesundes Modell zeigt beide Kurven fallend und sich bei geringem Fehler annähernd treffend – mit einer kleinen Lücke dazwischen.
Warum Overfitting und Underfitting entstehen
Sobald du weißt, wie du sie erkennst, stellt sich die nächste Frage: Warum treten sie auf? Beide entstehen durch ein Missverhältnis zwischen Modell und Problem – nur in entgegengesetzter Richtung.
Ursachen für Underfitting
Underfitting lässt sich fast immer auf drei Dinge zurückführen.
- Das Modell ist zu simpel: Ein lineares Modell kann keine gekrümmte Beziehung abbilden. Die Kapazität reicht nicht für die tatsächliche Komplexität des Problems.
- Die Features sind unzureichend: Selbst ein fähiges Modell underfitted, wenn du ihm die falschen Eingaben gibst. Hauspreise nur aus der Postleitzahl zu schätzen, ergibt keinen Sinn und übersieht Fläche, Zimmer, Zustand, Alter und Grundstücksgröße. Dem Modell fehlt brauchbarer Input.
- Zu wenig Training: Dem Modell fehlten Tiefe, Iterationen, Epochen oder Anpassungen der Lernrate, um eine gute Lösung zu finden. Das Training wurde zu früh beendet.
Ursachen für Overfitting
Overfitting entsteht, wenn das Modell mehr Freiheit bekommt, als die Daten hergeben.
- Das Modell ist zu komplex: Ein tiefes neuronales Netz mit Millionen Parametern, trainiert auf einem winzigen Datensatz, hat reichlich Spielraum zum Auswendiglernen. Die Kapazität übersteigt den Bedarf des Problems.
- Zu viele Features: Wenn du mehr Features als sinnvolle Muster hast, lernt das Modell Korrelationen, die nur im Trainingssample existieren und nicht generalisieren.
- Der Datensatz ist zu klein: Bei wenig Trainingsdaten kann selbst moderate Komplexität den gesamten Satz auswendig lernen. Es gibt nicht genug Beispiele zum Generalisieren.
- Zu langes Training: Das Modell passt Gewichte weiter an, obwohl es das eigentliche Muster schon gelernt hat, und beginnt, den Lärm zu fitten. Ab diesem Punkt macht weiteres Training alles schlechter.
Der Bias-Variance-Trade-off
Der Bias-Variance-Trade-off erklärt, warum Modellleistung darin besteht, den Sweet Spot zu finden: Dein Modell soll auf unbekannte Daten gut generalisieren, ohne das Problem zu stark zu vereinfachen oder sich an den Trainingssatz anzupassen.
Hoher Bias
Bias ist der Fehler, der aus den Annahmen eines Modells über die Daten entsteht. Ein Modell mit hohem Bias hat starke, vereinfachende Annahmen. Es kann die tatsächliche Komplexität in den Daten nicht abbilden.
Genau das ist Underfitting. Das Modell ist zu starr, um die Muster zu erfassen, und produziert Vorhersagen, die daneben liegen – egal wie viele Daten du gibst.
Trainierst du ein High-Bias-Modell 100 Mal auf verschiedenen Stichproben, machen alle 100 Versionen ähnliche Fehler. Ihre Vorhersagen clustern um die falsche Antwort.
Hohe Varianz
Varianz ist der Fehler, der entsteht, wenn ein Modell zu sensibel auf die spezifischen Trainingsdaten reagiert. Ein High-Variance-Modell greift jedes kleine Muster auf – meist Rauschen.
Das ist Overfitting. Das Modell passt sich sehr eng an den Trainingssatz an, aber schon kleine Änderungen in den Trainingsdaten führen zu stark unterschiedlichen Vorhersagen.
Trainierst du ein High-Variance-Modell 100 Mal auf verschiedenen Stichproben, bekommst du 100 sehr unterschiedliche Modelle. Ihre Vorhersagen streuen stark – selbst für die gleichen Eingaben.
Der Trade-off
Weder Bias noch Varianz lassen sich vollständig eliminieren – du kannst nur zwischen beiden verschieben.
Reduzierst du Bias durch mehr Modellkomplexität, steigt die Varianz. Reduzierst du Varianz durch Vereinfachung, steigt der Bias. Ziel ist die Mitte, wo der Gesamtfehler am niedrigsten ist.

Beispiel für den Bias-Variance-Trade-off
So behebst du Underfitting
Wenn du Underfitting diagnostiziert hast, gibt es mehrere Wege, es zu beheben. Alle erhöhen die Kapazität des Modells, die Muster in deinen Daten abzubilden.
- Modellkomplexität erhöhen: Wechsle zu einem flexibleren Modell. Von linearer Regression zu polynomialer Regression oder von einem flachen Baum zu einem tieferen.
- Mehr Features hinzufügen: Ergänze neue, wirklich aussagekräftige Eingaben. Erstelle Interaktionsterme, polynomiale Features oder domänenspezifische Merkmale, auf die das Modell zuvor keinen Zugriff hatte.
- Länger trainieren: Eventuell hatte das Modell nicht genug Zeit zur Konvergenz. Gib mehr Epochen oder passe den Lernratenplan an.
- Regularisierung verringern: Regularisierung hält ein Modell einfach – das Gegenteil dessen, was Underfitting braucht. Senke die Regularisierungsstärke oder entferne sie, um dem Modell mehr Freiheit zu geben.
Ein paar gute Features bewirken oft mehr als ein Architekturwechsel. Starte damit, bevor du das Modell selbst änderst.
So behebst du Overfitting
Overfitting behebst du mit dem Gegenansatz. Du schränkst das Modell ein, damit es aufhört, die Trainingsdaten auswendig zu lernen.
- Mehr Daten sammeln: Ein größerer Datensatz erschwert dem Modell das Auswendiglernen. Mehr Beispiele zwingen es, Muster zu finden, die über den gesamten Satz hinweg gelten, nicht nur in ein paar Zeilen.
- Regularisierung anwenden: L1- und L2-Regularisierung fügen eine Strafe für große Gewichte hinzu und verhindern, dass sich das Modell zu stark auf einzelne Features stützt. Das ist eine der zuverlässigsten Maßnahmen.
- Modellkomplexität reduzieren: Wenn das Modell zu groß für die Daten ist, verkleinere es. Nutze weniger Parameter, flachere Bäume oder kleinere Netze.
- Cross-Validation verwenden: Cross-Validation liefert eine ehrlichere Einschätzung der Leistung auf unbekannten Daten. So erhältst du aus einem Datensatz mehrere Trainings-/Test-Splits.
- Dropout für neuronale Netze einsetzen: Dropout deaktiviert während des Trainings zufällig einen Prozentsatz der Neuronen. Das zwingt das Netz, redundante Repräsentationen zu lernen und reduziert die Abhängigkeit von einzelnen Neuronen.
- Frühzeitig stoppen: Beobachte den Validierungsfehler und beende das Training, wenn er stagniert oder steigt – auch wenn der Trainingsfehler weiter fällt. Dieses Early Stopping ist eine der einfachsten Maßnahmen.
Regularisierung und Early Stopping sind meist die ersten Hebel. Sie kosten nichts und helfen fast immer.
Overfitting und Underfitting in verschiedenen Modellen
Unterschiedliche Modellfamilien zeigen Underfitting und Overfitting auf ihre Art. So können drei gängige Ansätze in beide Richtungen scheitern.
Lineare Modelle
- Underfitting: Lineare Modelle setzen eine lineare Beziehung voraus. Wenn das tatsächliche Muster gekrümmt ist, kann das Modell ihm nicht folgen – egal wie viele Daten du gibst.
- Overfitting: Mit genügend polynomialen oder Interaktionstermen kann selbst lineare Regression Rauschen auswendig lernen. Regularisierungsmethoden wie Ridge und Lasso existieren vor allem dafür.
Entscheidungsbäume
- Underfitting: Ein flacher Baum kann nur wenige Splits machen. Mit zwei oder drei Entscheidungen lassen sich Muster, die mehr Nuancen brauchen, nicht abbilden.
- Overfitting: Tiefe Bäume neigen zu Overfitting. Ein Baum, der so lange splittet, bis jedes Blatt nur noch ein Trainingsbeispiel enthält, erreicht perfekte Trainingsgenauigkeit und schwache Testgenauigkeit. Deshalb gibt es Parameter wie
max_depth,min_samples_splitund Pruning.
Neuronale Netze
- Underfitting: Netze, die zu klein für das Problem sind, underfitten. Das gilt auch, wenn das Training zu früh stoppt oder der Optimierer in einer suboptimalen Lösung stecken bleibt.
- Overfitting: Das ist im Deep Learning häufiger. Ein Netz mit Millionen Parametern kann selbst große Datensätze bei genug Epochen auswendig lernen. Dropout, Weight Decay, Data Augmentation und Early Stopping sollen genau das verhindern.
Weitere Beispiele für Overfitting vs. Underfitting
Ich zeige dir nun zwei klassische Beispiele mit Code, an denen die Muster leicht zu erkennen sind.
Polynomiale Regression
Eine verrauschte Sinuswelle ist ein guter Testfall. Passst du Polynome mit verschiedenen Graden an, siehst du, wie sich das Modellverhalten ändert.
import numpy as np
# Data
np.random.seed(7)
X = np.linspace(0, 1, 30)
y_true = np.sin(2 * np.pi * X)
y = y_true + np.random.normal(0, 0.2, X.shape)
# Fit polynomials of three degrees
X_smooth = np.linspace(0, 1, 300)
degrees = [1, 3, 15]
for degree in degrees:
coefs = np.polyfit(X, y, deg=degree)
y_pred = np.polyval(coefs, X_smooth)

Beispiel: Polynomiale Regression
Grad 1 ist eine Gerade und underfitted – sie kann der Kurve nicht folgen. Grad 3 trifft die tatsächliche Form, nimmt etwas Rauschen auf und bleibt nahe an der Wahrheit. Grad 15 overfitted, schlängelt sich durch jeden Trainingspunkt und erzeugt starke Oszillationen dazwischen.
Entscheidungsbäume mit variabler Tiefe
Die gleiche Geschichte gibt es bei Entscheidungsbäumen. Du trainierst Bäume mit zunehmender Tiefe auf denselben Daten und misst den Fehler auf Trainings- und Testsatz.
import numpy as np
from sklearn.tree import DecisionTreeRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
# Data
np.random.seed(11)
X = np.linspace(0, 10, 250).reshape(-1, 1)
y = np.sin(X).ravel() + np.random.normal(0, 0.3, 250)
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.3, random_state=0
)
depths = range(1, 21)
train_errors = []
test_errors = []
for depth in depths:
tree = DecisionTreeRegressor(max_depth=depth, random_state=0)
tree.fit(X_train, y_train)
train_errors.append(mean_squared_error(y_train, tree.predict(X_train)))
test_errors.append(mean_squared_error(y_test, tree.predict(X_test)))

Beispiel: Entscheidungsbaum
Der Trainingsfehler sinkt mit wachsender Tiefe und nähert sich schließlich null, wenn jedes Blatt nur noch einen Trainingspunkt enthält. Der Testfehler fällt zunächst, weil der Baum die echten Beziehungen erfasst, steigt dann aber wieder, wenn tiefere Splits Rauschen fitten. Das Minimum liegt bei der Tiefe, die beide Seiten ausbalanciert.
Häufige Fehler bei der Diagnose der Modellleistung
Selbst mit der richtigen Metrik sind Fehlschlüsse leicht. Das solltest du bei der Bewertung der Modellleistung vermeiden:
- Nur die Trainingsgenauigkeit bewerten: Sie zeigt, wie gut das Modell bereits gesehene Daten trifft – aber nichts über neue Eingaben. Ziehe immer einen separaten Satz zurate, bevor du Schlüsse ziehst.
- Validierungsdaten ignorieren: Validierungsdaten nutzt du, um Architektur, Hyperparameter und Stoppzeitpunkt zu justieren. Sonst overfittet das Modell sowohl den Trainings- als auch den zu oft verwendeten Testsatz.
- Mehr Komplexität automatisch für besser halten: Ein größeres Modell ist nicht automatisch ein fähigeres. Bei kleinen Daten oder einfachen Zusammenhängen verschlechtert Komplexität die Leistung. Starte simpel und erhöhe die Kapazität nur, wenn die Diagnostik es nahelegt.
- Rauschen für Signal halten: Nicht jedes Muster in den Trainingsdaten ist lernenswert. Zufällige Schwankungen, Stichprobenverzerrungen, Ausreißer und Erfassungsartefakte wirken auf flexible Modelle oft bedeutend. Wenn du nicht erklären kannst, warum eine Beziehung bestehen sollte, sei vorsichtig.
Prüfe immer alle vier Punkte, bevor du dich für ein Modell entscheidest. Die meisten Produktionsfehler hängen mit einem (oder mehreren) davon zusammen.
Fazit
Underfitting und Overfitting sind die zwei Arten, wie ein Modell nicht generalisiert. Das eine bleibt zu einfach für das Muster. Das andere versucht, jeden Punkt im Datensatz zu lernen.
Das eigentliche Trainingsziel liegt dazwischen – dort, wo Bias und Varianz im Gleichgewicht sind und der Gesamtfehler minimal ist.
Die Validierungsleistung ist die Metrik, die dir zeigt, wo du stehst. Verfolge sie während des Trainings und lass die Differenz zwischen Trainings- und Validierungsfehler deine Entscheidungen leiten. Wenn der Validierungsfehler nicht mehr sinkt, während der Trainingsfehler weiter fällt, hast du den Sweet Spot überschritten. Wenn beide hoch bleiben, hast du ihn noch nicht erreicht.
Du willst 2026 fortgeschrittene Data-Science-Konzepte lernen und jobready werden? Melde dich für unseren Machine Learning Engineer Lernpfad an – vom Einstieg bis zu MLOps.
FAQs
Was ist der Unterschied zwischen Overfitting und Underfitting?
Underfitting entsteht, wenn ein Modell zu simpel ist, um die Muster in deinen Daten abzubilden, und daher sowohl auf Trainings- als auch auf Testsatz schlecht abschneidet. Overfitting ist das Gegenteil: Das Modell lernt die Trainingsdaten zu gut, inklusive Rauschen, liefert im Training Top-Werte und scheitert auf neuen Daten. Beide führen zu schwachen Vorhersagen – aus unterschiedlichen Gründen.
Woran erkenne ich, ob mein Modell overfittet oder underfittet?
Vergleiche Trainings- mit Testfehler. Sind beide hoch, liegt Underfitting vor. Ist der Trainingsfehler sehr niedrig, der Testfehler aber hoch, handelt es sich um Overfitting. Lernkurven helfen ebenfalls: Bei Overfitting driften Trainings- und Validierungsfehler auseinander, bei Underfitting bleiben beide früh auf hohem Niveau flach.
Was ist der Bias-Variance-Trade-off?
Bias ist der Fehler, der durch ein zu simples Modell entsteht; Varianz ist der Fehler, der durch zu hohe Sensibilität gegenüber Trainingsdaten entsteht. Reduzierst du das eine, steigt meist das andere. Ziel ist das Gleichgewicht, bei dem der Gesamtfehler minimal ist. Modelle mit der besten Balance generalisieren am besten auf neue Daten.
Behebt das Sammeln zusätzlicher Daten Overfitting?
Oft ja, aber nicht garantiert. Mehr Daten erschweren dem Modell das Auswendiglernen, sodass es Muster finden muss, die im gesamten Satz gelten. Ist dein Modell jedoch deutlich zu komplex für das Problem oder tragen deine Features überwiegend Rauschen, reicht mehr Datenmenge nicht aus. In solchen Fällen wirken Regularisierung und simplere Modelle oft besser.
Kann ich Early Stopping nutzen, um Overfitting in neuronalen Netzen zu verhindern?
Ja, und es ist eine der einfachsten Maßnahmen. Beobachte den Validierungsfehler während des Trainings und brich ab, wenn er stagniert oder steigt – auch wenn der Trainingsfehler weiter fällt. So triffst du den Punkt, an dem das Modell das echte Muster gelernt hat und beginnt, Rauschen zu fitten. Die meisten Deep-Learning-Frameworks haben Early-Stopping-Callbacks an Bord.
