Normalization vs. Standardization
Zwei Feature-Scaling-Methoden im Vergleich – Normalization skaliert auf [0,1], Standardization auf Mittelwert 0 und Standardabweichung 1.
Die Transformation von Features auf vergleichbare Wertebereiche – wichtig für viele ML-Algorithmen wie Gradient Descent, KNN und SVMs.
Feature Scaling bringt alle Features auf vergleichbare Wertebereiche.
Problem ohne Scaling:
Feature 1 (Alter): 18 - 80
Feature 2 (Einkommen): 20.000 - 500.000
→ Einkommen dominiert Distanzberechnungen!
| Methode | Formel | Bereich |
|---|---|---|
| Min-Max | (x - min) / (max - min) | [0, 1] |
| Standard | (x - mean) / std | ~[-3, 3] |
| Robust | (x - median) / IQR | Outlier-robust |
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! Feature Scaling ist wie Währungsumrechnung: Bevor du Preise vergleichst, musst du alles in die gleiche Währung umrechnen – sonst dominieren große Zahlen.
Bringt Features auf vergleichbare Skala
Wichtig für Gradient Descent, KNN, SVM
Nicht nötig für Tree-basierte Modelle
Neural Networks
Schnellere Konvergenz beim Training
KNN
Distanzen fair berechnen
Regularisierung
L1/L2 funktioniert besser mit skalierten Features
Bei distanzbasierten Algorithmen (KNN, SVM), Gradient Descent (Neural Nets, Logistic Regression), Regularisierung. Nicht bei Trees (Random Forest, XGBoost).
Ja! Scaler auf Trainingsdaten fitten, dann auf Test anwenden. Sonst Data Leakage.