Sofortantwort
Feature Scaling einfach erklärt
Features auf vergleichbare Wertebereiche transformieren.
- Kurz gesagt
- Bringt Features auf vergleichbare Skala
- Typischer Einsatz
- Neural Networks, KNN, Regularisierung
- Wichtig zu wissen
- Für viele Tree-basierte Modelle oft weniger relevant
Feature Scaling im Überblick
Feature Scaling bringt alle Features auf vergleichbare Wertebereiche.
Problem ohne Scaling:
Feature 1: kleiner Wertebereich
Feature 2: großer Wertebereich
→ Das Feature mit großem Wertebereich kann Distanzberechnungen dominieren
Technisch betrachtet
Methoden
| Methode | Formel | Bereich |
|---|---|---|
| Min-Max | (x - min) / (max - min) | [0, 1] |
| Standard | (x - mean) / std | um Mittelwert 0, abhängig von Verteilung |
| Robust | (x - median) / IQR | Outlier-robust |
Sklearn
from sklearn.preprocessing import StandardScaler, MinMaxScaler
# Fit auf Train, Transform auf beide
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test) # Nur transform!
Warum Scaling für Gradient Descent wichtig ist
Bei stark unterschiedlich skalierten Features ist die Loss-Landschaft ein langgezogenes Tal statt einer runden Schüssel: Der Gradient zeigt dann selten direkt zum Minimum, und der Optimierer zickzackt sich langsam voran. Die Lernrate muss sich am empfindlichsten (größten) Feature orientieren und ist für alle anderen zu klein. Skalierte Features machen die Landschaft gleichmäßiger – Gradient Descent konvergiert direkter und verträgt größere Lernraten.
Für distanzbasierte Verfahren wie KNN oder K-Means ist der Effekt noch unmittelbarer: Die euklidische Distanz summiert quadrierte Differenzen pro Feature. Ein Feature mit Wertebereich in Tausendern übertönt eines im Bereich 0 bis 1 vollständig – die Distanz misst dann faktisch nur noch ein einziges Feature.
Welcher Algorithmus braucht Scaling?
| Algorithmus | Scaling nötig? | Grund |
|---|---|---|
| KNN, K-Means, SVM | Ja | Distanz- bzw. Margin-basiert |
| Lineare/Logistische Regression mit Regularisierung | Ja | L1/L2 bestraft Koeffizienten skalenabhängig |
| Neuronale Netze | Ja | Stabileres Gradiententraining |
| PCA | Ja | Varianzbasiert – große Skalen dominieren Komponenten |
| Entscheidungsbäume, Random Forest, Gradient Boosting | Meist nein | Splits sind invariant gegenüber monotonen Transformationen |
| Naive Bayes | Nein | Arbeitet mit Verteilungen pro Feature |
Scaling sauber in eine Pipeline einbauen
Der zuverlässigste Weg, Data Leakage und vergessene Transformationen zu vermeiden, ist eine scikit-learn-Pipeline. Sie garantiert, dass fit nur auf Trainingsdaten passiert – auch innerhalb von Cross-Validation:
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.model_selection import cross_val_score
pipe = make_pipeline(StandardScaler(), SVC())
scores = cross_val_score(pipe, X, y, cv=5) # Scaler wird pro Fold neu gefittet
Typische Fehler in der Praxis
- Scaling vor dem Train/Test-Split: Statistiken (min, max, mean, std) enthalten dann Testdaten – ein klassischer Leakage-Fehler, der die Evaluation zu optimistisch macht.
- Zielvariable mitskalieren und vergessen zurückzutransformieren: Bei Regression müssen Vorhersagen mit
inverse_transformin den Originalbereich zurück, sonst sind Metriken und Interpretation falsch. - Scaler nicht mit dem Modell speichern: In Produktion müssen exakt dieselben Statistiken angewendet werden. Am besten Scaler und Modell gemeinsam als Pipeline serialisieren.
- Min-Max bei Ausreißern: Ein einzelner Extremwert staucht alle regulären Werte zusammen. Dann lieber
RobustScaler(Median und IQR) verwenden. - One-Hot-Features mitskalieren: Binäre 0/1-Spalten verlieren ihre Bedeutung; mit
ColumnTransformerlassen sich numerische und kategorische Spalten getrennt behandeln.
Schritt für Schritt
Wie Skalierung Teil einer sauberen Pipeline wird
Modell und Merkmale einordnen
Prüfe, ob der gewählte Algorithmus empfindlich auf unterschiedliche Größenordnungen reagiert und welche Merkmale einen sinnvollen Zahlenbereich haben. Skalierung ist eine technische Entscheidung mit fachlichen Folgen.
Verfahren und Grenzen wählen
Entscheide zwischen Verfahren wie Standardisierung oder robuster Skalierung anhand der Verteilung und Ausreißer. Dokumentiere, welche Werte erwartet werden und wie unerwartete Eingaben im Betrieb behandelt werden.
Parameter nur aus Trainingsdaten lernen
Berechne Mittelwerte, Streuung oder Grenzen ausschließlich auf dem Trainingsanteil und übertrage sie anschließend unverändert auf Prüfung und Betrieb. Das verhindert Datenleckage und unrealistisch gute Bewertungen.
Pipeline reproduzierbar prüfen
Versioniere Transformation und Parameter zusammen mit dem Modell. Tests stellen sicher, dass Training, Prüfung und Produktion dieselben Schritte in derselben Reihenfolge anwenden.
Konkretes Beispiel
Zwei Merkmale erhalten vergleichbaren Einfluss
Ein Modell nutzt sowohl einen Geldbetrag als auch eine kleine Zählvariable. Ohne Vorbereitung dominiert die größere Skala manche Distanz- oder Optimierungsverfahren.
Ungeprüfte Eingaben
Das Team skaliert zunächst den gesamten Datensatz vor der Aufteilung. Dadurch fließen Informationen aus dem späteren Testteil in die Transformation ein und das Ergebnis wirkt besser, als es sein sollte.
Saubere Pipeline
Die Skalierungsparameter werden nur auf dem Trainingsanteil gelernt und als Teil der Pipeline gespeichert. Prüfung und Betrieb erhalten exakt dieselbe Transformation, während Ausreißer separat beobachtet werden.
Einordnung
Vorteile und Grenzen
Das spricht dafür
- Verhindert, dass reine Größenordnungen einzelne Merkmale ungewollt dominieren.
- Macht Training, Prüfung und Betrieb als einheitliche Transformation reproduzierbar.
- Unterstützt stabile Optimierung bei vielen distanz- oder gradientenbasierten Verfahren.
Das solltest du beachten
- Nicht jedes Modell benötigt Skalierung; unnötige Schritte machen die Pipeline komplexer.
- Falsch gelernte Parameter können Datenleckage und überoptimistische Bewertungen verursachen.
- Skalierung behebt weder falsche Merkmale noch fehlende Datenqualität oder Verzerrung.
Vertiefung · für FortgeschritteneMerkmale in einer reproduzierbaren Pipeline
Vergleichbare Werte
- Preprocessing
- Aufbereitung von Rohdaten in eine für ML-Modelle nutzbare Form.
- Feature Engineering
- Merkmale werden aus Rohdaten für ML-Modelle erstellt.
- Cross-Validation
- Verfahren zur zuverlässigen Schätzung der Modellleistung durch mehrfache Datenaufteilung.
- Dataset
- Eine Sammlung strukturierter Daten für das Training von KI-Modellen.
- Gradient Descent
- Algorithmus zur schrittweisen Fehlerminimierung im ML.