Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

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

StandardScaler

StandardScaler: Una herramienta esencial para el preprocesado de datos

Introducción

En el mundo del machine learning, la preparación y el preprocesado de los datos son fundamentales para obtener modelos predictivos eficientes. Uno de los componentes más utilizados en este proceso es StandardScaler, una herramienta que transforma las variables numéricas a una distribución con media 0 y desviación estándar 1, eliminando la escala original. En esta guía, exploraremos cómo funciona StandardScaler en Scikit-learn, su importancia, cómo usarlo adecuadamente y algunos errores comunes para evitar.

Explicación principal

StandardScaler es una transformación que se aplica a los datos numéricos para centrarlos (eliminar la media) y escalarlos (dividir por la desviación estándar). Esto ayuda a normalizar las características del conjunto de datos, lo cual es especialmente útil cuando tus modelos requieren que todas las características estén en una misma escala.

Ejemplo práctico

Vamos a ver un ejemplo simple para entender mejor cómo funciona StandardScaler. Supongamos que tenemos el siguiente dataset con dos características:

import numpy as np
from sklearn.preprocessing import StandardScaler

# Datos de muestra
data = np.array([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])

# Crear un objeto StandardScaler
scaler = StandardScaler()

# Ajustar y transformar los datos
scaled_data = scaler.fit_transform(data)

print(scaled_data)

La salida será:

[[-1.22474487 -1.22474487]
 [ 0.          0.        ]
 [ 1.22474487  1.22474487]]

Como puedes ver, el dataset ha sido transformado de tal manera que tiene una media cercana a cero y una desviación estándar cercana a uno.

Errores típicos / trampas

A pesar de su utilidad, StandardScaler puede caer en algunos errores si no se usa correctamente. A continuación, te presentamos algunas situaciones comunes donde puede fallar:

  1. Trampa de datos en la transformación:
  • Error: Si intentas aplicar fit_transform a los datos de prueba sin haber ajustado el scaler con los datos de entrenamiento primero.
  • Solución: Asegúrate de que scaler.fit_transform() se aplica solo a los datos de entrenamiento y scaler.transform() se utiliza para transformar los datos de prueba.
  1. No considerar la escala de los datos:
  • Error: Si no aplicas el escalado en todas las características relevantes, puedes perder información importante.
  • Solución: Verifica que todos los atributos numéricos relevantes estén siendo escalados y evita omitir variables importantes.
  1. Ignorar la presencia de valores faltantes:
  • Error: Si tienes datos con valores faltantes, StandardScaler no maneja estos casos automáticamente.
  • Solución: Llena los valores faltantes antes de aplicar el escalado o utiliza métodos que puedan manejar faltantes directamente.

Checklist accionable

Para asegurarte de usar StandardScaler correctamente en tus proyectos, sigue estos puntos:

  1. Asegúrate de importar Scikit-learn:
   from sklearn.preprocessing import StandardScaler
  1. Crea un objeto StandardScaler:
   scaler = StandardScaler()
  1. Ajusta y transforma los datos de entrenamiento:
   scaled_train_data = scaler.fit_transform(train_data)
  1. Transforma los datos de prueba sin ajustarlos nuevamente:
   scaled_test_data = scaler.transform(test_data)
  1. Verifica la consistencia en la escalada:
  • Usa scaler.mean_ y scaler.scale_ para asegurarte de que los valores resultantes son como esperabas.
  1. Maneja correctamente los datos faltantes:
  • Considera rellenar los valores faltantes antes del escalado o usar un método compatible con faltantes.

Cierre

En resumen, StandardScaler es una herramienta esencial en la preparación de datos para el machine learning. Asegúrate de aplicarlo correctamente y evitar los errores comunes que pueden afectar a tus modelos. Siguiendo las pautas del checklist, podrás optimizar tu uso de esta transformación.

Siguientes pasos

  • Aprende más sobre MinMaxScaler: Este otro método puede ser útil en algunos casos.
  • Explora el uso de StandardScaler junto con otros transformadores:
  from sklearn.pipeline import Pipeline, FeatureUnion
  • Ejercita tu habilidad con conjuntos de datos reales para entender mejor cuándo y cómo usar escalados diferentes.

¡Felicitaciones por llegar hasta aquí! Ya estás listo para aplicar StandardScaler con confianza en tus proyectos de machine learning.

Contacto

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