Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Scikit-learn desde cero, Unidad 4 — Preprocesado de datos, 4.1 — Escalado y normalización ·

Cuándo usar cada uno

Cuándo usar cada uno: Escalado y Normalización con Scikit-learn

Introducción

En el mundo de la ciencia de datos, escalar y normalizar los datos es una etapa crítica en el preprocesamiento. El escalado y la normalización permiten transformar las variables a una escala común para que puedan ser usadas eficientemente por modelos de machine learning. Estas técnicas son fundamentales porque muchos algoritmos, como regresión lineal y árboles de decisión, se benefician de datos escalados y normalizados. Sin embargo, elegir la técnica adecuada depende del contexto específico del problema que estés resolviendo.

Explicación principal

StandardScaler: Un escalador estándar

El StandardScaler es uno de los más comunes en Scikit-learn. Este transformador resta la media y divide por la desviación típica de cada característica, es decir, transforma las variables a una distribución con media cero y varianza unitaria.

Bloque de código:

from sklearn.preprocessing import StandardScaler

# Ejemplo de uso
scaler = StandardScaler()
data_scaled = scaler.fit_transform(data)

MinMaxScaler: Un escalador entre 0 y 1

El MinMaxScaler transforma los datos a un rango específico, por defecto entre 0 y 1. Es útil cuando no se desea cambiar la forma de la distribución de las variables.

Bloque de código:

from sklearn.preprocessing import MinMaxScaler

# Ejemplo de uso
scaler = MinMaxScaler()
data_scaled = scaler.fit_transform(data)

Cuándo usar cada uno

  • StandardScaler: Utiliza este escalador cuando los datos no se distribuyen en un rango específico y no es deseable cambiar la forma de la distribución. Es ideal para algoritmos que son sensibles a las desviaciones estándar, como la regresión lineal.
  • MinMaxScaler: Este es útil cuando se requiere que todas las características estén en el mismo rango, lo que puede ser necesario para algunos algoritmos de aprendizaje no supervisado o para visualización. También es útil cuando se trabaja con datos con valores extremadamente altos o bajos.

Errores típicos / trampas

  1. Ignorar la distribución de los datos: A veces, el uso incorrecto del escalador puede cambiar la forma de la distribución de tus datos, lo que afecta negativamente a tu modelo. Es crucial entender si tus datos siguen una distribución normal o no.
  1. No escalar variables categóricas: Las técnicas de escalado no son aplicables a las variables categóricas sin transformación previa. Olvidar esto puede llevar a interpretaciones incorrectas y modelos que no funcionan como se espera.
  1. Usar el mismo conjunto de datos para entrenamiento y validación: Esto puede generar un sesgo conocido como "data leakage", donde la información del conjunto de validación se usa en el entrenamiento, lo que infla falsamente los resultados del modelo.

Checklist accionable

  • Verifica si tus datos siguen una distribución normal.
  • Identifica las variables categóricas y aplícalas la transformación adecuada (OneHotEncoder o OrdinalEncoder).
  • Utiliza el StandardScaler cuando no es necesario cambiar la forma de la distribución de los datos.
  • Usa MinMaxScaler cuando necesitas que todas tus características estén en un rango específico, como entre 0 y 1.

Cierre

Siguientes pasos

  • Explorar más transformadores: Familiarízate con otros transformadores de Scikit-learn como RobustScaler o QuantileTransformer.
  • Practicar con proyectos reales: Aplica estos conceptos en proyectos prácticos para mejorar tu comprensión y habilidades.
  • Evaluación continua: Continúa evaluando la importancia de escalado y normalización según el tipo de algoritmo y los datos específicos que estés trabajando.

Siguiendo estas pautas, podrás aplicar correctamente el escalado y normalización en tus proyectos de machine learning para obtener modelos más precisos y efectivos.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).