Breadcrumb
Startseite > Data Science > Model Tuning
0 Prozent sicher Rang: Werkbank-Neuling
6 Module · Werkstatt-Metapher · lokale Fortschrittsspeicherung

Worum geht es hier?

In der Modell-Werkstatt reicht es nicht, einfach nur eine Maschine anzuschalten. Du musst erst die Eingangsteile angleichen, dann das Fließband sauber aufbauen, mehrere Probeläufe machen und am Ende prüfen, welche Einstellung unter echten Bedingungen stabil läuft.

ScalingGleiche Maßeinheiten auf dem Fließband, damit große Zahlen kleine nicht überrollen.
Cross ValidationMehrere Probeessen statt nur einer Kostprobe.
TuningDie Regler so einstellen, dass das Modell nicht nur im Labor, sondern auch draußen gut läuft.
Jede erstmals richtig gelöste Quizfrage bringt 10 Punkte. Jede ausprobierte Demo bringt 5 Punkte.
Die Leitmetapher bleibt durchgehend gleich: Werkbank, Fließband und Qualitätskontrolle.
Dein Stand bleibt lokal auf diesem Gerät gespeichert, auch nach einem Browser-Neustart.
Modul 1

Skalierung – Gleiche Maße auf der Werkbank

Du verstehst, warum große Zahlen kleine Merkmale überrollen können und wie MinMaxScaler und StandardScaler das Fließband fair machen.

Offen

Alltagsszene

In der Werkstatt willst du Äpfel und Birnen vergleichen. Wenn du Wohnfläche in Quadratmetern neben Zimmeranzahl legst, schreit die größere Zahl sofort lauter. Für viele Modelle fühlt sich das an, als würde ein riesiges Bauteil das halbe Fließband blockieren.

Vor allem Nachbarschaftsmodelle wie KNN reagieren darauf empfindlich, weil sie Abstände messen. Wenn eine Achse viel größere Werte hat als die andere, zieht sie jede Entscheidung an sich.

ML-Sprache

bringt Eingaben auf ein ähnliches Maß. Der legt alles zwischen 0 und 1. Der zentriert um 0 und macht die typische Streuung zu 1.

Im Bild vom Fließband heißt das: Jedes Teil bekommt erst einen passenden Standardbehälter, bevor die Maschine misst.

MinMax presst alles in einen festen Korridor. StandardScaler schaut stattdessen: Wie weit liegt ein Wert vom Durchschnitt entfernt?

Interaktive Demo: Rohdaten gegen skaliertes Fließband

Modus
Roh
X-Achse
110-310
Y-Achse
1-5
Noch schreit die Wohnfläche deutlich lauter als die Zimmerzahl. Klick auf „Skalieren“, damit beide Merkmale fair auf demselben Fließband laufen.
Die Punkte sind dieselben Wohnungen. Nur die Messlatte ändert sich. Genau das ist der Sinn von Scaling.
Python Code
from sklearn.preprocessing import StandardScaler
import pandas as pd

X = pd.DataFrame({
    "wohnfläche": [55, 70, 88, 105, 130, 155],
    "zimmer": [1, 2, 2, 3, 4, 5]
})

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
print(X_scaled.round(2))
Was passiert hier? Das Fließband lernt zuerst aus den Trainingswerten Mittelwert und Streuung. Danach werden beide Merkmale in dieselbe Messwelt übersetzt.

Was nimmst du mit?

Bevor das Modell misst, muss die Werkstatt entscheiden, auf welcher Skala gemessen wird. Sonst dominiert die lauteste Zahl statt des wichtigsten Merkmals.

Modul 2

Cross Validation – Fünf Probeessen statt einer Meinung

Du verstehst, warum mehrere Testläufe stabiler sind als nur ein einziger Split, und du siehst K-Fold Cross Validation direkt am Fließband.

Offen

Alltagsszene

Ein Koch fragt nicht nur eine Person, ob das Probeessen schmeckt, wenn daraus später das Standardrezept für die ganze Kantine werden soll. Er lässt mehrere Gruppen probieren.

Genau so arbeitet : Das Modell fährt mehrmals durchs Fließband, und jedes Mal liegt ein anderer Teil der Daten auf dem Prüfstand.

ML-Sprache

Bei zerlegst du den Datensatz in k Folds. Ein Fold ist Test, die übrigen sind Training. Danach wandert der Testblock weiter, bis jeder Teil einmal dran war.

Das Fließband bekommt also nicht nur einen Probebetrieb, sondern mehrere. So siehst du besser, ob die Maschine stabil läuft oder nur auf einer glücklichen Teilmenge gut aussieht.

Du mittelt die Ergebnisse aus mehreren Probeläufen. Ein einzelner Ausreißer darf so nicht die ganze Werkstatt täuschen.

Interaktive Demo: Der K-Fold-Simulator

Aktueller Fold
1 / 5
Trainingsdaten
80
Testdaten
20
Der blaue Block ist gerade die Testgruppe. Nach jedem Klick wandert er weiter, damit jede Gruppe einmal probieren darf.
Python Code
from sklearn.model_selection import cross_val_score
from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier(random_state=42)
scores = cross_val_score(model, X, y, cv=5, scoring="roc_auc")

print(scores.round(3))
print(scores.mean().round(3))
Was passiert hier? Das Modell läuft fünfmal durchs Fließband. Jeder Lauf testet auf einem anderen Teil der Daten.

Was nimmst du mit?

Ein einzelnes Testurteil ist wie eine einzige Kostprobe. Cross Validation verteilt die Qualitätskontrolle auf mehrere Gruppen und macht das Gesamtbild robuster.

Modul 3

Grid Search & Random Search – Die Regler in der Werkstatt

Du verstehst, wie Hyperparameter-Suche funktioniert und warum Zufall bei vielen Reglern oft überraschend effizient ist.

Offen

Alltagsszene

Du suchst das perfekte Backrezept. Grid Search probiert streng jedes Rezept aus deiner Liste: 180, 200, 220 Grad kombiniert mit 10, 15, 20 Minuten. Random Search greift stattdessen ein paar Mischungen heraus und schaut, ob darunter schon sehr gute Treffer sind.

Je mehr Regler deine Werkstatt hat, desto länger dauert der komplette Zettelkasten. Dann kann Zufall erstaunlich schlau sein.

ML-Sprache

sind Regler, die du vor dem Training festlegst. testet jede vorgegebene Kombination. probiert nur einige zufällige Kombinationen.

Die Werkstatt-Frage lautet also: Willst du jeden Regler konsequent abklappern oder schnell gute Ecken im Einstellraum finden?

Je mehr Regler du kombinierst, desto schneller explodiert die Zahl der Versuche. Das ist der Kern des Tuning-Problems.

Interaktive Demo: Das 5x5-Rezept-Raster

Die dunkelgrünste Kachel ist das beste Modell. Grid Search deckt systematisch auf, Random Search greift fünf zufällige Kacheln.

Aufgedeckt
0
Bester Fund
-
Suchmodus
Noch keiner
Grid Search läuft Zeile für Zeile. Random Search kann mit viel Glück schon früh in einer guten Zone landen.
Python Code
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV, RandomizedSearchCV

param_grid = {
    "n_estimators": [100, 200, 300],
    "max_depth": [4, 8, None]
}

grid = GridSearchCV(RandomForestClassifier(random_state=42), param_grid, cv=5)
random = RandomizedSearchCV(
    RandomForestClassifier(random_state=42),
    param_distributions=param_grid,
    n_iter=5,
    cv=5,
    random_state=42
)
Was passiert hier? Beide Werkzeuge suchen gute Reglereinstellungen. Grid Search ist gründlicher, Random Search oft schneller bei vielen Reglern.

Was nimmst du mit?

Tuning ist keine Magie, sondern eine organisierte Suche auf der Werkbank. Entscheidend ist, wie groß dein Reglerraum ist und wie viel Zeit du investieren willst.

Modul 4

Pipelines – Das feste Fließband gegen Data Leakage

Du verstehst, warum Datenvorbereitung und Modell in dieselbe Produktionsstraße gehören und warum Testdaten nur durchlaufen, aber nicht mitlernen dürfen.

Offen

Alltagsszene

In einer Fabrik werden die Rohteile zuerst gewaschen, dann zugeschnitten und erst danach verarbeitet. Niemand würde mitten im Probebetrieb plötzlich die Messer neu an den Testteilen kalibrieren.

Genau das verhindert eine : Das Fließband läuft immer in derselben Reihenfolge ab.

ML-Sprache

entsteht, wenn du beim Vorverarbeiten versehentlich schon auf Testdaten schaust. Deshalb heißt die sichere Regel: Auf dem Training .fit(), auf neuen Daten nur .transform() oder .predict().

Im Fließband-Bild heißt das: Die Maschine wird an Trainingsmaterial eingestellt. Neue Testteile fahren nur durch, sie geben der Maschine aber keine neuen Einstellwerte.

Trainingsdaten justieren das Fließband. Testdaten nutzen das bereits eingestellte Fließband nur noch.

Interaktive Demo: Das Fließband läuft los

Station 1

Daten waschen

Fehlende Werte ersetzen, damit keine Lücken in der Werkstatt entstehen.

Station 2

Daten angleichen

Skalieren, damit alle Teile auf dasselbe Messband passen.

Station 3

Modell trainieren

Jetzt erst lernt die Maschine, wie sie unterscheiden soll.

Station 4

Neue Fälle prüfen

Testdaten fahren nur noch durch und erhalten eine Vorhersage.

Starte den Durchlauf. Die aktive Station zeigt dir, an welcher Stelle des Fließbands du gerade bist.
Python Code
from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression

pipe = Pipeline([
    ("imputer", SimpleImputer(strategy="median")),
    ("scaler", StandardScaler()),
    ("model", LogisticRegression(max_iter=1000))
])
Was passiert hier? Die drei Werkstatt-Schritte werden zu einer festen Produktionsstraße. Genau das schützt dich vor Reihenfolgefehlern und Leakage.

Was nimmst du mit?

Eine Pipeline ist kein Luxus, sondern die saubere Werkstattordnung. Sie sorgt dafür, dass Training und Test nicht heimlich ineinanderlaufen.

Modul 5

Decision Boundaries – Die Grenzpatrouille

Du siehst, wie verschiedene Modelle dieselben roten und blauen Punkte mit völlig unterschiedlichen Grenzlinien trennen.

Offen

Alltagsszene

In der Werkstatt kommt eine Grenzpatrouille zum Einsatz: Welche Teile landen auf dem roten Förderband, welche auf dem blauen? Die Punkte sind gleich, aber die Art der Grenzziehung hängt von der Maschine ab.

Eine ist also die Trennlinie im Raum. Manche Maschinen ziehen gerade Linien, andere bauen Treppen, wieder andere schmiegen sich sehr eng an die Punkte an.

ML-Sprache

zeichnet oft eine gerade Grenze. Ein trennt blockig. Ein wirkt etwas weicher. kann die Punkte sehr eng umschließen.

Im Bild vom Fließband heißt das: Alle Maschinen sortieren dieselben Teile, aber jede zieht den Grenzzaun anders.

Interaktive Demo: Dieselben Punkte, vier Grenzstile

Logistische Regression zieht hier eine gerade Linie. Wechsel das Modell und beobachte, wie die Grenzpatrouille anders arbeitet.

Was nimmst du mit?

Die Punkte bleiben gleich. Nur die Maschine entscheidet, ob die Grenze gerade, treppenförmig oder sehr passgenau wird.

Modul 6

Praxis-Projekt: Die Diabetes Challenge

Du setzt das ganze Werkstattdenken zu einem Workflow zusammen: Split, Pipeline, Cross Validation, Grid Search und Auswertung.

Offen

Alltagsszene

In der Modell-Werkstatt landet jetzt ein kompletter Auftrag auf dem Band: Ein Datensatz mit Gesundheitswerten soll genutzt werden, um Hinweise auf Diabetes zu erkennen. Nicht mit Bauchgefühl, sondern mit sauberem Werkstattprozess.

Die Reihenfolge ist hier alles: Erst Überblick über die Daten, dann Split, dann das Fließband mit Imputer und Scaler, dann Cross Validation und Tuning, erst danach die Auswertung.

ML-Sprache

Das hier ist der komplette Werkstatt-Workflow in kompakt: füllt Lücken, gleicht die Maße an, das Modell lernt, und testet mehrere Reglerkombinationen mit mehreren Folds.

Im Bild vom Fließband heißt das: Du baust einmal die ganze Linie sauber auf und prüfst dann, welche Einstellung im Mehrfachtest die stabilste Qualität liefert.

Mini-Demo: Der Werkstatt-Workflow in vier Takten

1. EDA
Daten verstehen
2. Split
Train/Test trennen
3. Pipeline + CV
sauber trainieren
4. Evaluate
fair prüfen
Starte die vier Takte. Die Werkstatt-Reihenfolge ist hier wichtiger als jeder einzelne Regler.

🏋️ Übung: Die Werkstatt-Pipeline zu Ende bauen

Fülle die drei Lücken, damit das Fließband komplett ist: Scaler, Modell und Anzahl der Folds. Das Beispiel ist klein gehalten, damit du den Ablauf klar siehst.

📓 Öffne dein Jupyter Notebook oder Google Colab und probiere es selbst aus.

import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.impute import SimpleImputer
from sklearn.model_selection import GridSearchCV, train_test_split
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler

df = pd.DataFrame({
    "glucose": [85, 89, 90, 110, 120, 130, 145, 160, 170, 95],
    "bmi": [23.1, 27.4, 31.0, 29.9, 34.2, 36.1, 32.8, 38.4, 35.7, 24.8],
    "age": [21, 29, 33, 37, 40, 45, 50, 54, 60, 26],
    "outcome": [0, 0, 0, 0, 1, 1, 1, 1, 1, 0]
})

X = df[["glucose", "bmi", "age"]]
y = df["outcome"]

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42, stratify=y
)

pipe = Pipeline([
    ("imputer", SimpleImputer(strategy="median")),
    ("scaler", ???),
    ("model", ???)
])

param_grid = {
    "model__n_estimators": [100, 200],
    "model__max_depth": [4, 8]
}

search = GridSearchCV(pipe, param_grid=param_grid, cv=???, scoring="roc_auc")
search.fit(X_train, y_train)

print(search.best_params_)
💡 Tipp anzeigen

Das Fließband soll hier aus Imputer, StandardScaler und RandomForest bestehen. Für die Werkstatt-Prüfung wollen wir fünf Probeessen.

✅ Lösung anzeigen
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.impute import SimpleImputer
from sklearn.model_selection import GridSearchCV, train_test_split
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler

df = pd.DataFrame({
    "glucose": [85, 89, 90, 110, 120, 130, 145, 160, 170, 95],
    "bmi": [23.1, 27.4, 31.0, 29.9, 34.2, 36.1, 32.8, 38.4, 35.7, 24.8],
    "age": [21, 29, 33, 37, 40, 45, 50, 54, 60, 26],
    "outcome": [0, 0, 0, 0, 1, 1, 1, 1, 1, 0]
})

X = df[["glucose", "bmi", "age"]]
y = df["outcome"]

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42, stratify=y
)

pipe = Pipeline([
    ("imputer", SimpleImputer(strategy="median")),
    ("scaler", StandardScaler()),
    ("model", RandomForestClassifier(random_state=42))
])

param_grid = {
    "model__n_estimators": [100, 200],
    "model__max_depth": [4, 8]
}

search = GridSearchCV(pipe, param_grid=param_grid, cv=5, scoring="roc_auc")
search.fit(X_train, y_train)

print(search.best_params_)

Erwartete Ausgabe: ein Dictionary mit der besten Reglerkombination, zum Beispiel {"model__max_depth": 4, "model__n_estimators": 100}.

Was nimmst du mit?

Model Tuning ist kein einzelner Trick. Es ist eine saubere Werkstattfolge: verstehen, trennen, Fließband bauen, mehrfach testen und erst dann urteilen.