Escalado de características: normalización y estandarización
MinMaxScaler, StandardScaler y RobustScaler: cuándo usar cada uno y por qué es importante.
Escalado de características: normalización y estandarización es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Por qué escalar las características?
Muchos algoritmos son sensibles a la MAGNITUD de las características. Una característica cuyo rango va de 0 a 1.000.000 dominará a otra cuyo rango va de 0 a 1 en modelos basados en distancias o gradientes. El escalado sitúa las características en rangos comparables.
Quién necesita escalado
El escalado es importante para KNN, SVM, k-means, PCA y los modelos basados en descenso de gradiente, como la regresión lineal o logística y las redes neuronales. Los modelos basados en árboles (bosques aleatorios y gradient boosting) son invariantes al escalado y no lo necesitan.
Normalización: MinMaxScaler
La normalización min-max reescala cada característica a un intervalo fijo, normalmente de 0 a 1, mediante (x - min) / (max - min). Conserva la forma de la distribución.
from sklearn.preprocessing import MinMaxScaler
import numpy as np
X = np.array([[10.0], [20.0], [30.0], [40.0]])
scaler = MinMaxScaler()
print(scaler.fit_transform(X).ravel()) # [0. 0.333 0.667 1.]Estandarización: StandardScaler
La estandarización da a cada característica una media cero y una varianza unitaria mediante (x - mean) / std. El resultado es una puntuación z; los valores quedan centrados, pero no limitados.
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
Xs = scaler.fit_transform(X)
print(Xs.ravel())
print(Xs.mean(), Xs.std()) # ~0 and ~1MinMax frente a Standard
Utilice MinMax cuando necesite un rango limitado (por ejemplo, para píxeles de imágenes o entradas de redes neuronales). Utilice Standard cuando el algoritmo suponga datos aproximadamente centrados en cero (PCA, SVM y modelos lineales). MinMax es más sensible a los valores atípicos.
RobustScaler para valores atípicos
RobustScaler centra los datos en la MEDIANA y escala mediante el IQR. Como ambos resisten los valores atípicos, es la opción adecuada cuando los valores extremos distorsionarían los otros escaladores.
from sklearn.preprocessing import RobustScaler
Xo = np.array([[1.0], [2.0], [3.0], [4.0], [100.0]])
print(RobustScaler().fit_transform(Xo).ravel())fit frente a transform
Los escaladores APRENDEN los parámetros en fit (el mínimo y el máximo, o la media y la desviación estándar) y los APLICAN en transform. fit_transform realiza ambas operaciones en una sola llamada.
scaler = StandardScaler()
scaler.fit(X) # learns mean and std
Xs = scaler.transform(X) # applies themLa regla de oro: ajuste solo con los datos de entrenamiento
Haga siempre fit con el conjunto de ENTRENAMIENTO y después aplique únicamente transform al conjunto de prueba con esos parámetros aprendidos. Ajustar con los datos de prueba filtra información de estos hacia el modelo.
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test) # transform only!Por qué no ajustar con los datos de prueba
Si escala utilizando estadísticas que incluyen el conjunto de prueba, la evaluación ve información que no debería tener; esto es fuga de datos. Produce estimaciones de rendimiento demasiado optimistas y poco fiables.
Transformación inversa
Los escaladores pueden invertir la operación con inverse_transform, lo que resulta útil para convertir las predicciones escaladas a las unidades originales al presentar los resultados.
original = scaler.inverse_transform(X_train_scaled)
# recovers the pre-scaled valuesEscalado del objetivo
En clasificación, normalmente se escalan las CARACTERÍSTICAS, no el objetivo. En regresión también puede escalar el objetivo, pero recuerde aplicar la transformación inversa a las predicciones antes de presentar los errores.
Comprobación rápida
Compruebe sus conocimientos sobre escalado.
Resumen
Herramientas de escalado:
- El escalado es importante para los modelos basados en distancias o gradientes; los árboles lo ignoran
MinMaxScaler-> rango limitado 0..1;StandardScaler-> media cero y varianza unitariaRobustScalerutiliza la mediana y el IQR, y es robusto frente a los valores atípicos- Haga siempre
fit_transformcon los datos de entrenamiento ytransformúnicamente con los de prueba (para evitar fugas)
Preguntas frecuentes
¿La lección «Escalado de características: normalización y estandarización» es gratis?
Sí — el texto completo de «Escalado de características: normalización y estandarización» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «Escalado de características: normalización y estandarización»?
MinMaxScaler, StandardScaler y RobustScaler: cuándo usar cada uno y por qué es importante. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Escalado de características: normalización y estandarización»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Detección y eliminación de valores atípicos
- Codificación de variables categóricas
- Escalado de características: normalización y estandarización
- Creación de pipelines de preprocesamiento