Normalización y estandarización
Pon cada feature en una escala común antes de que el modelo siquiera corra.
A la distancia no le importa el significado — solo la magnitud. Arregla la regla de medir, no los datos.
El problema
- La glucosa vive en los cientos; el pedigrí de diabetes vive entre 0 y 2.4.
- Una brecha de 30 unidades de glucosa aporta 900 a la distancia al cuadrado; una brecha de 0.5 en pedigrí aporta 0.25.
- Para k-NN o k-means, "más cercano" secretamente significa "glucosa parecida".
- Nadie eligió eso. Es un accidente de unidades — y arruina los modelos basados en distancias.
La dispersión cruda
Ocho features, un eje compartido. La insulina y la glucosa se estiran a lo ancho; el resto queda aplastado cerca de cero.
Tres transformaciones, una línea cada una
Min-max a una caja fija [0, 1]:
x′=xmax−xminx−xmin
Estandarización — el z-score, media 0 y std 1:
z=σx−μ
Escalado robusto — mediana e IQR, a prueba de outliers:
x′=IQR(x)x−median(x)
La única regla en la que puedes equivocarte
- Cada escalador es un
fit (leer una estadística) más un transform (aplicarla).
- Ajusta solo con el split de entrenamiento. Aplica esos números congelados al split de prueba.
- Nunca escales el dataset completo antes de partirlo — eso filtra estadísticas de test al entrenamiento.
- Un escalador con fuga infla tu score de validación hasta un número que no puedes reproducir.
Mira al escalado voltear una predicción
La misma consulta, los mismos datos. Solo cambia la regla de medir: espacio crudo → espacio estandarizado.
Crudo: 15 vecinos votan 4 diabetes / 11 no → sin diabetes. Estandarizado: 8 / 7 → diabetes.
Qué le hace el escalado al modelo
k-NN fijo, mismo split, cuatro corridas. Accuracy en test — fracción de pacientes reservados clasificados bien (sin unidades, 0–1).
Crudo 0.745 → estandarizado 0.771. Sin información nueva, solo un cambio de unidades.
Conclusiones
- Escala para distancias (k-NN, k-means, SVM, PCA), descenso de gradiente (lineal/logística, redes) y penalizaciones (ridge, lasso).
- Ni te molestes con los árboles — los splits por umbral son inmunes al reescalado monotónico.
- La estandarización es el default; min-max para un rango acotado; robusto cuando dominan los outliers.
- Siempre ajusta en train, transforma todo. Cero estadísticas de test en la transformación.