Training & Optimierung: Wie lernt ein Modell?
Fehlerfunktion Loss Overfitting und Train/Test-Split verstehen. Praktische Ăbung mit Python und scikit-learn.
- Die SuS können die Konzepte Fehlerfunktion (Loss), Overfitting und Train/Test-Split erklĂ€ren und deren Bedeutung fĂŒr das ML-Training begrĂŒnden.Verstehen
- Die SuS können mit Python und scikit-learn ein einfaches ML-Modell trainieren und Train- sowie Test-Score interpretieren.Anwenden
Training: Fehlerfunktion & Optimierung
Wie weiss ein Modell ob es richtig liegt? Und wie wird es besser?
Vorhersage vs. RealitÀt
Das Modell macht eine Vorhersage Ć· (y-Hut). Der tatsĂ€chliche Wert heisst y. Der Fehler ist die Differenz: Fehler = y â Ć·.

Loss / Verlustfunktion
Die Loss-Funktion misst wie falsch das Modell insgesamt liegt. Ein bekanntes Mass: der mittlere quadratische Fehler (MSE) â er quadriert alle Einzel fehler und mittelt sie.
Je kleiner der Loss desto besser das Modell.
Training = Fehler minimieren
Beim Training werden die Parameter (Gewichte) des Modells schrittweise angepasst bis der Fehler möglichst klein ist. Das ist wie ein Gradientenabstieg: man «rutscht» den Fehlerberg hinunter.
Overfitting
Wenn das Modell die Trainingsdaten auswendig lernt statt die zugrundeliegenden Muster. Folge: Es funktioniert perfekt bei den Trainingsdaten aber schlecht bei neuen Daten.
Train/Test-Split
Deshalb teilen wir die Daten auf:
- Trainingsdaten (z.B. 75%): Zum Trainieren des Modells
- Testdaten (z.B. 25%): Zum ĂberprĂŒfen ob das Modell wirklich generalisiert
Wenn der Trainings-Score hoch ist aber der Test-Score niedrig â Overfitting!
Challenge
Aufgabe · Lineare Regression mit Python (20 min)
Du arbeitest mit scikit-learn der wichtigsten ML-Bibliothek fĂŒr Python.
Deine Aufgabe
- FĂŒhre den Starter-Code aus und beobachte den Train- und Test-Score
- VerÀndere
test_size(z.B. 0.1 0.5) â was passiert? - Provoziere Overfitting: Verwende ein komplexeres Modell (z.B.
PolynomialFeaturesmit Grad 10)
Fragen zum Beantworten
- Was bedeutet ein Score von 1.0 auf Trainingsdaten aber 0.3 auf Testdaten?
- Warum ist der Test-Score wichtiger als der Trainings-Score?
- Ab wann wĂŒrdest du sagen: «Das Modell ist overfitted»?
Note
Voraussetzung
Ăffne ein Terminal in VS Code und installiere scikit-learn:
pip install scikit-learn numpy
Danach kannst du den Starter-Code direkt ausfĂŒhren.
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import numpy as np
# Beispieldaten: Lernzeit (h) â Testergebnis (Punkte)
X = np.array([[1], [2], [3], [4], [5], [6], [7], [8]])
y = np.array([40, 50, 55, 60, 68, 72, 78, 85])
# Train/Test-Split (75% Train, 25% Test)
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.25, random_state=42
)
# Modell erstellen und trainieren
model = LinearRegression()
model.fit(X_train, y_train)
# Scores ausgeben
print("Train-Score:", model.score(X_train, y_train))
print("Test-Score: ", model.score(X_test, y_test))
print("Vorhersage fĂŒr 5h Lernzeit:", model.predict([[5]]))Reflection
Reflexion & Diskussion: Was kann ML â was nicht?
Think-Pair-Share: Diskutiert mit deinem Nachbarn â wo sind die Grenzen von ML?
Was braucht ein gutes Modell zwingend?
- Genug (reprĂ€sentative) Trainingsdaten: Wenige oder einseitige Daten â schlechte Vorhersagen
- Korrekte Labels bei Supervised Learning: Falsche Labels â falsches Modell
- Geeignete Problemstruktur: Nicht jedes Problem ist ML-geeignet. Manchmal reicht eine einfache Regel
ML kann nicht...
- ... «verstehen» was es tut â es erkennt nur statistische Muster
- ... commonsense-Entscheidungen treffen ohne Trainingsdaten
- ... erklÀren warum es eine Entscheidung getroffen hat (Black-Box-Problem)