Cuando unas variables van de 0 a 100 y otras de 0 a 1.000.000, muchos modelos se dejan dominar por la de números más grandes, sin importar si de verdad es más importante. Escalar pone todas las variables en un rango comparable, en pie de igualdad.
El problema: escalas dispares
Imagina predecir con dos variables: edad (0–80) e ingreso (0–1.000.000). Para un modelo que mide distancias, la diferencia de ingreso entre dos personas (miles) aplasta cualquier diferencia de edad (decenas). La edad queda invisible, no por ser irrelevante, sino por su escala.
Estandarización (z-score)
La más usada: a cada variable le resta su media y la divide por su desviación estándar . El resultado tiene media 0 y desviación 1.
Un valor de significa "dos desviaciones por encima del promedio", sin importar la unidad original.
Normalización Min-Max
Lleva cada variable al rango [0, 1], usando su mínimo y su máximo:
Útil cuando quieres un rango acotado (por ejemplo, entradas de una red neuronal o píxeles de imágenes). Su punto débil: es sensible a valores atípicos, que estiran el rango.
¿Qué modelos lo necesitan?
- Sí lo necesitan (usan distancias o gradientes): KNN, SVM, redes neuronales, PCA, k-means.
- No les afecta: los basados en árboles (árboles de decisión, Random Forest, XGBoost), porque solo comparan umbrales dentro de cada variable.
En código
El escalador se ajusta con el entrenamiento y se aplica a todo:
from sklearn.preprocessing import StandardScaler, MinMaxScaler
escalador = StandardScaler()
escalador.fit(X_train) # aprende μ y σ SOLO del entrenamiento
X_train_esc = escalador.transform(X_train)
X_test_esc = escalador.transform(X_test) # usa la μ y σ del entrenamiento
Meterlo dentro de un Pipeline garantiza que el escalado se recalcule bien en cada partición de la validación cruzada.
Para llevar
Escalar pone a todas las variables en un rango comparable para que ninguna domine por su magnitud. La estandarización (media 0, desviación 1) es la opción por defecto; la normalización Min-Max lleva a [0, 1] pero sufre con atípicos. Lo necesitan los modelos de distancias y gradientes; los árboles no. Y siempre: ajustar con el entrenamiento, aplicar al resto.
