Get the App

Chapter 6 of 7

Gute vs. schlechte Modelle: Overfitting, Underfitting und Evaluation

In diesem Modul lernst du, wie man beurteilt, ob ein Modell gut ist, und was Begriffe wie Overfitting und Underfitting bedeuten – inklusive grundlegender Kennzahlen.

15 min readde

1. Was macht ein *gutes* Modell aus?

In den vorherigen Modulen hast du gesehen, wie ein typischer ML‑Workflow aussieht und einfache Modelltypen wie lineare Modelle und Entscheidungsbäume kennengelernt.

Jetzt geht es um eine zentrale Frage:

> Woran erkenne ich, ob ein Modell gut oder schlecht ist?

Ein gutes Modell sollte:

  1. Auf bekannten Daten gut funktionieren

→ also auf den Trainingsdaten, mit denen es gelernt hat.

  1. Auf neuen, unbekannten Daten gut funktionieren

→ also auf Testdaten, die es noch nie gesehen hat.

  1. Nicht nur auswendig lernen, sondern Muster erkennen, die auch in neuen Daten gelten.

Daraus ergeben sich zwei typische Probleme:

  • Overfitting: Das Modell lernt zu viel auswendig.
  • Underfitting: Das Modell lernt zu wenig und ist zu simpel.

In diesem Modul schauen wir uns diese Begriffe Schritt für Schritt an und lernen einfache Kennzahlen kennen, mit denen man Modelle bewertet.

2. Trainingsdaten vs. Testdaten

Bevor wir über gut oder schlecht sprechen, müssen wir zwei Datensätze unterscheiden:

  • Trainingsdaten: Damit lernt das Modell.

Beispiel: 8.000 bisherige Kreditentscheidungen einer Bank.

  • Testdaten: Damit prüfen wir das Modell.

Beispiel: 2.000 neue Fälle, die das Modell noch nicht gesehen hat.

Warum trennen wir das?

  • Wenn wir nur auf die Trainingsdaten schauen, wissen wir nur: Wie gut kann das Modell diese Beispiele erklären?
  • Uns interessiert aber: Wie gut funktioniert es auf neuen Fällen in der Realität?

Daher ist der Testfehler (Fehler auf Testdaten) meist wichtiger als der Trainingsfehler (Fehler auf Trainingsdaten).

3. Overfitting – zu gut, um wahr zu sein

Intuition

Overfitting bedeutet: Das Modell passt sich extrem gut an die Trainingsdaten an, aber versagt bei neuen Daten.

Bildliche Vorstellung:

  • Stell dir einen Punktediagramm vor (x‑Achse: Lernzeit, y‑Achse: Klausurnote).
  • Ein overfittetes Modell zeichnet eine super komplizierte, zackige Kurve, die jeden einzelnen Punkt perfekt trifft.
  • Auf den Trainingspunkten ist der Fehler fast 0.
  • Kommt ein neuer Punkt dazu, liegt er oft weit weg von der Kurve.

Typische Anzeichen für Overfitting:

  • Trainingsfehler: sehr klein (fast perfekte Vorhersagen)
  • Testfehler: deutlich größer

Kurz gesagt:

> Das Modell hat die Trainingsdaten auswendig gelernt, statt das allgemeine Muster zu verstehen.

4. Beispiel für Overfitting und Underfitting

Stell dir vor, du willst vorhersagen, ob eine Studentin eine Prüfung besteht (Ja/Nein) anhand der Lernstunden.

Wir probieren drei Modelle:

  1. Sehr einfaches Modell (Underfitting):

„Wenn jemand mehr als 1 Stunde gelernt hat, besteht er/sie, sonst nicht.“

→ Ignoriert viele Unterschiede (z.B. ob jemand 2 oder 20 Stunden gelernt hat).

  1. Angemessenes Modell:

Eine glatte Kurve: Je mehr man lernt, desto höher die Wahrscheinlichkeit zu bestehen, aber ohne jeden Einzelfall perfekt zu treffen.

  1. Überkompliziertes Modell (Overfitting):

Eine hochgradige, zackige Kurve, die jeden einzelnen Trainingspunkt perfekt trennt.

→ Bei neuen Studierenden mit ähnlicher Lernzeit macht das Modell oft unsinnige Vorhersagen.

Typische Beobachtung:

  • Modell 1: Hoher Fehler auf Training und Test → Underfitting
  • Modell 2: Mittlerer Fehler auf Training, ähnlicher Fehler auf Test → Gut
  • Modell 3: Sehr niedriger Fehler auf Training, viel höherer Fehler auf Test → Overfitting

5. Denkübung: Ist das Overfitting oder Underfitting?

Lies dir die Situationen durch und entscheide, was wahrscheinlicher ist.

Situation A

Ein Entscheidungsbaum mit sehr vielen Ebenen erreicht:

  • Trainingsgenauigkeit: 99 %
  • Testgenauigkeit: 70 %

👉 Deine Einschätzung?

  • Wenn du an Overfitting denkst, liegst du sehr wahrscheinlich richtig: Das Modell ist zu komplex.

---

Situation B

Ein lineares Modell zur Bildklassifikation (z.B. Katzen vs. Hunde) erreicht:

  • Trainingsgenauigkeit: 60 %
  • Testgenauigkeit: 58 %

👉 Deine Einschätzung?

  • Das Modell ist vermutlich zu simpel für das komplexe Problem → Underfitting.

> Merke dir:

> - Overfitting: Training sehr gut, Test deutlich schlechter.

> - Underfitting: Training schon schlecht → dann meist auch Test schlecht.

6. Evaluationsmetriken: Accuracy & Fehlerquote

Um Modelle zu vergleichen, brauchen wir Zahlen, die ihre Leistung beschreiben. Für Einsteiger ist die wichtigste Metrik:

Accuracy (Genauigkeit)

Bei Klassifikationsproblemen (z.B. Spam / Nicht‑Spam, Krank / Gesund) ist die Accuracy:

> Accuracy = (Anzahl korrekter Vorhersagen) / (Anzahl aller Vorhersagen)

Beispiel:

  • 100 E‑Mails im Testset
  • 92 richtig klassifiziert

→ Accuracy = 92 / 100 = 92 %

Fehlerquote

Die Fehlerquote ist einfach das Gegenstück:

> Fehlerquote = 1 − Accuracy

Im Beispiel:

Fehlerquote = 1 − 0,92 = 0,08 = 8 %

Wichtig: Accuracy ist leicht zu verstehen, aber hat Grenzen – vor allem bei unausgeglichenen Klassen (siehe nächster Schritt).

7. Grenzen der Accuracy bei unausgeglichenen Klassen

Stell dir ein medizinisches Screening vor, z.B. auf eine seltene Krankheit.

  • 10.000 Personen im Datensatz
  • Nur 100 Personen sind tatsächlich krank

1 % krank, 99 % gesund

Jetzt ein extrem dummes Modell:

> Es sagt einfach immer „gesund“.

Was passiert?

  • 9.900 Gesunde → richtig klassifiziert
  • 100 Kranke → alle falsch als gesund klassifiziert

Accuracy = 9.900 / 10.000 = 99 %

Das klingt super, ist aber inhaltlich katastrophal, weil 0 % der kranken Personen erkannt werden.

Lernpunkt:

  • Bei stark unausgeglichenen Klassen (z.B. seltene Krankheiten, Betrugserkennung) ist Accuracy allein oft irreführend.
  • Später (in weiterführenden Modulen) lernt man zusätzliche Kennzahlen, z.B. Precision, Recall und F1‑Score.

Für dieses Einsteigermodul reicht:

> Du solltest misstrauisch werden, wenn ein Datensatz sehr unausgeglichen ist und jemand nur mit „hoher Accuracy“ argumentiert.

8. Loss-Funktionen – Fehler als Zahl

Neben Accuracy verwenden viele Lernverfahren eine Loss‑Funktion (Verlustfunktion). Sie misst, wie schlecht das Modell ist.

Grundidee:

  • Jede einzelne Vorhersage bekommt einen Fehlerwert (z.B. 0 = perfekt, größer = schlechter).
  • Diese Fehler werden gemittelt → ergibt den durchschnittlichen Loss über den Datensatz.

Zwei einfache Beispiele:

  1. Quadratischer Fehler (häufig bei Regression):

\( \text{Loss} = (\text{Vorhersage} - \text{wahrer Wert})^2 \)

→ Große Fehler werden stärker bestraft.

  1. 0‑1‑Loss (für einfache Klassifikation):
  • 0, wenn die Vorhersage korrekt ist
  • 1, wenn sie falsch ist

→ Der durchschnittliche 0‑1‑Loss ist im Grunde die Fehlerquote.

Du musst die Formeln nicht auswendig können. Wichtig ist:

  • Trainingsloss: Wie schlecht ist das Modell auf den Trainingsdaten?
  • Testloss: Wie schlecht ist es auf neuen Daten?

Overfitting erkennst du oft daran, dass der Trainingsloss viel kleiner ist als der Testloss.

9. Mini-Codebeispiel: Trainings- vs. Testgenauigkeit

Unten siehst du ein kleines Beispiel in Python mit `scikit-learn`. Du musst den Code nicht im Detail verstehen, aber achte auf die Accuracy auf Training und Test.

```python

from sklearn.datasets import loadbreastcancer

from sklearn.tree import DecisionTreeClassifier

from sklearn.modelselection import traintest_split

from sklearn.metrics import accuracy_score

1. Daten laden

data = loadbreastcancer()

X, y = data.data, data.target

2. Aufteilen in Trainings- und Testdaten

Xtrain, Xtest, ytrain, ytest = traintestsplit(

X, y, testsize=0.3, randomstate=42

)

3. Sehr tiefer Entscheidungsbaum (potenziell Overfitting)

model = DecisionTreeClassifier(maxdepth=None, randomstate=42)

model.fit(Xtrain, ytrain)

4. Accuracy berechnen

ytrainpred = model.predict(X_train)

ytestpred = model.predict(X_test)

trainacc = accuracyscore(ytrain, ytrain_pred)

testacc = accuracyscore(ytest, ytest_pred)

print("Trainings-Accuracy:", train_acc)

print("Test-Accuracy:", test_acc)

```

Reflexion:

  • Wenn die Trainings-Accuracy viel höher ist als die Test-Accuracy, ist das ein Hinweis auf Overfitting.
  • Experimentiere (wenn du magst) mit `maxdepth=3` oder `maxdepth=4` und beobachte, wie sich die Werte ändern.

10. Quiz: Erkennst du Overfitting?

Beantworte die Frage, um dein Verständnis zu prüfen.

Ein Modell erreicht auf den Trainingsdaten 98 % Accuracy, auf den Testdaten aber nur 78 %. Was ist die **wahrscheinlichste** Erklärung?

  1. Das Modell ist zu komplex und hat Overfitting.
  2. Das Modell ist zu simpel und hat Underfitting.
  3. Die Accuracy ist immer gleich auf Training und Test, es muss ein Rechenfehler sein.
Show Answer

Answer: A) Das Modell ist zu komplex und hat Overfitting.

Die große Lücke zwischen Trainings- (98 %) und Testgenauigkeit (78 %) ist ein typisches Zeichen für **Overfitting**: Das Modell passt sich stark an die Trainingsdaten an, generalisiert aber schlecht auf neue Daten.

11. Wichtige Begriffe wiederholen

Nutze die Karten, um die Kernbegriffe zu wiederholen.

Trainingsdaten
Daten, mit denen das Modell **lernt**. Das Modell sieht diese Beispiele während des Trainings.
Testdaten
Daten, mit denen das Modell **geprüft** wird. Es hat diese Beispiele vorher nicht gesehen.
Overfitting
Das Modell passt sich zu stark an die Trainingsdaten an (auswendig lernen) und funktioniert schlechter auf neuen Daten.
Underfitting
Das Modell ist zu simpel und kann selbst die Trainingsdaten nicht gut erklären. Es fängt die Struktur des Problems nicht ein.
Accuracy (Genauigkeit)
Anteil der **korrekten Vorhersagen** an allen Vorhersagen. Geeignet für viele Klassifikationsprobleme, aber problematisch bei stark unausgeglichenen Klassen.
Fehlerquote
Anteil der **falschen Vorhersagen**. Fehlerquote = 1 − Accuracy.
Loss-Funktion
Eine Funktion, die misst, wie **schlecht** die Vorhersagen des Modells sind. Der durchschnittliche Loss dient als Trainingssignal.
Trainingsfehler vs. Testfehler
Trainingsfehler misst die Leistung auf Trainingsdaten, Testfehler auf neuen Daten. Eine große Lücke zwischen beiden ist ein Hinweis auf Overfitting.

12. Transferaufgabe: Ein Modell bewerten

Stell dir vor, du arbeitest in einem Team, das ein Modell zur Betrugserkennung bei Online-Zahlungen entwickelt. Die Daten sind stark unausgeglichen: Nur 0,5 % aller Transaktionen sind betrügerisch.

Das Team präsentiert dir folgende Ergebnisse:

  • Trainings-Accuracy: 99,7 %
  • Test-Accuracy: 99,6 %
  • Das Modell markiert aber nur 10 % der tatsächlichen Betrugsfälle korrekt.

Aufgabe:

  1. Welche Probleme erkennst du? (Stichworte: unausgeglichene Klassen, Overfitting/Underfitting, Metriken)
  2. Warum ist die hohe Accuracy hier nicht ausreichend aussagekräftig?
  3. Welche zusätzliche Information oder Metriken würdest du vom Team einfordern?

Notiere dir kurz deine Gedanken (stichpunktartig reicht). Vergleiche dann mit dieser möglichen Lösungsidee:

  • Die Klassen sind unausgeglichen → Accuracy ist irreführend.
  • Obwohl Accuracy hoch ist, werden 90 % der Betrugsfälle verpasst → inhaltlich inakzeptabel.
  • Du würdest nach Kennzahlen wie Recall (Sensitivität) für die Betrugsklasse, Precision und Konfusionsmatrix fragen und überlegen, ob das Modell stärker auf das Erkennen von Betrug optimiert werden sollte, auch wenn die Gesamt‑Accuracy etwas sinkt.

Key Terms

Testdaten
Daten, die zur Bewertung der Leistung eines Modells auf neuen, unbekannten Beispielen genutzt werden.
Testfehler
Fehler (oder Loss) eines Modells auf neuen, zuvor nicht gesehenen Daten.
Fehlerquote
Anteil der falschen Vorhersagen; Fehlerquote = 1 − Accuracy.
Overfitting
Situation, in der ein Modell die Trainingsdaten zu stark auswendig lernt und dadurch auf neuen Daten schlechter abschneidet.
Underfitting
Situation, in der ein Modell zu simpel ist und selbst auf den Trainingsdaten keine gute Leistung erreicht.
Loss-Funktion
Mathematische Funktion, die misst, wie schlecht die Vorhersagen eines Modells im Vergleich zu den wahren Werten sind.
Trainingsdaten
Daten, die verwendet werden, um ein Modell zu trainieren (lernen zu lassen).
Trainingsfehler
Fehler (oder Loss) eines Modells auf den Daten, mit denen es trainiert wurde.
Accuracy (Genauigkeit)
Anteil der korrekten Vorhersagen an allen Vorhersagen; gebräuchliche Metrik für Klassifikationsprobleme.
Unausgeglichene Klassen
Situation, in der eine Klasse (z.B. "positiv") viel seltener vorkommt als die andere (z.B. "negativ"), z.B. 1 % zu 99 %.