← CS Lab AI & Machine Learning / Feature Scaling Open standalone ↗

Feature scaling rewrites every feature onto a comparable range, so no column wins just for being measured in bigger numbers. The dots keep their shape — only the axis underneath changes.

Where you meet it

What it does

It applies a per-feature linear map learned from the data. Income in € (0–100,000) and age in years (0–100) get pulled onto one footing, so the model weighs them by signal, not by unit. The map is monotonic, so the order of the points never changes.

Without scaling, your model doesn't learn what matters — it learns what was measured in bigger numbers.

How it works

Two workhorses. Min-Max rescales each feature into a fixed range, by default [0, 1]:

x' = (x - min) / (max - min)        # min → 0,  max → 1

Standardization (z-score) re-centres to mean 0 and unit standard deviation:

x' = (x - μ) / σ                    # mean → 0,  std → 1

Why bother? A distance like √(Δincome² + Δage²) is swamped by income simply because its raw numbers are ~1000× larger — age stops mattering. Gradient descent feels the same imbalance: with mismatched scales the loss surface is a stretched valley, and the steps zig-zag instead of heading straight down, so training crawls. Putting features on one scale removes the artificial advantage of large units.

Watch out

  • Fit on train only. Compute min/max or μ/σ on the training split, then apply those same numbers to test data. Fitting on the full set leaks test information — in scikit-learn: fit on train, transform on test.
  • Min-Max is outlier-sensitive. One extreme value sets the range and crushes everything else into a thin band; z-score is steadier, but neither removes outliers (reach for RobustScaler).
  • Tree models don't need it. Decision trees, random forests and gradient boosting split on thresholds per feature, so monotonic rescaling changes nothing.
  • z-score assumes spread is meaningful; on near-constant features σ → 0 blows up. The shape of the distribution is never fixed by scaling — it only moves the axis.

Go deeper

Feature Scaling bringt jedes Feature auf einen vergleichbaren Bereich — damit keine Spalte nur deshalb gewinnt, weil sie in größeren Zahlen gemessen wird. Die Punkte behalten ihre Form, nur die Achse darunter ändert sich.

Wo es vorkommt

Was es tut

Es wendet eine lineare Abbildung pro Feature an, gelernt aus den Daten. Einkommen in € (0–100.000) und Alter in Jahren (0–100) werden auf eine gemeinsame Basis gezogen, sodass das Modell sie nach Signal gewichtet, nicht nach Einheit. Die Abbildung ist monoton — die Reihenfolge der Punkte ändert sich nie.

Ohne Scaling lernt dein Modell nicht, was zählt — sondern was in größeren Zahlen gemessen wurde.

Wie es funktioniert

Zwei Arbeitspferde. Min-Max skaliert jedes Feature in einen festen Bereich, standardmäßig [0, 1]:

x' = (x − min) / (max − min)        # min → 0,  max → 1

Standardisierung (z-Score) zentriert auf Mittel 0 und Standardabweichung 1:

x' = (x − μ) / σ                    # Mittel → 0,  SD → 1

Warum der Aufwand? Eine Distanz wie √(ΔEinkommen² + ΔAlter²) wird vom Einkommen erschlagen, schlicht weil seine Rohzahlen ~1000× größer sind — Alter fällt raus. Gradient Descent spürt dieselbe Schieflage: bei ungleichen Skalen ist die Verlustfläche ein gestrecktes Tal, die Schritte zickzacken statt geradeaus abzusteigen, das Training kriecht. Eine gemeinsame Skala nimmt großen Einheiten ihren künstlichen Vorteil.

Worauf achten

  • Nur auf Train fitten. min/max bzw. μ/σ auf dem Trainings-Split berechnen, dann genau diese Werte auf die Testdaten anwenden. Fitten auf dem ganzen Datensatz leakt Testinfo — in scikit-learn: fit auf Train, transform auf Test.
  • Min-Max ist ausreißerempfindlich. Ein Extremwert setzt den Bereich und presst den Rest in ein schmales Band; z-Score ist robuster, aber keiner entfernt Ausreißer (dafür RobustScaler).
  • Baum-Modelle brauchen es nicht. Entscheidungsbäume, Random Forests und Gradient Boosting splitten pro Feature an Schwellen — monotones Reskalieren ändert daran nichts.
  • z-Score setzt eine sinnvolle Streuung voraus; bei nahezu konstanten Features läuft σ → 0 aus dem Ruder. Die Form der Verteilung wird durch Scaling nie verändert — es verschiebt nur die Achse.

Mehr dazu

Next up
AI & Machine LearningConfusion Matrix AI & Machine LearningROC & AUC All concepts →