Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Python intermedio para IA, Unidad 10 — Preparación para Machine Learning, 10.2 — Preprocesamiento en Python puro ·

Escalado manual

Escalado manual

Introducción

En la preparación de datos para machine learning (ML), uno de los pasos más importantes es escalado. Este proceso implica transformar las características numéricas a una escala uniforme, lo que puede mejorar significativamente el rendimiento y la precisión del modelo ML. Sin embargo, antes de utilizar métodos automatizados como StandardScaler o MinMaxScaler de librerías como Scikit-learn, es crucial entender cómo realizar escalado manualmente.

Explicación principal con ejemplos

Escalado estándar (escalado Z-score)

El escalado estándar, también conocido como escalado Z-score, transforma las características a una distribución normal con media 0 y desviación estándar 1. La fórmula para el escalado estándar es:

\[ x' = \frac{x - \mu}{\sigma} \]

donde:

  • \(x\) es la característica original.
  • \(\mu\) es la media de la característica.
  • \(\sigma\) es la desviación estándar de la característica.

Ejemplo en Python

import numpy as np

# Datos de ejemplo
data = np.array([1, 2, 3, 4, 5])

# Calcular media y desviación estándar
mean = np.mean(data)
std_dev = np.std(data)

# Escalar los datos
scaled_data = (data - mean) / std_dev

print("Datos escalados:", scaled_data)

Escalado min-max

El escalado min-max transforma las características a un rango específico, generalmente [0, 1]. La fórmula para el escalado min-max es:

\[ x' = \frac{x - \min(x)}{\max(x) - \min(x)} \]

donde:

  • \(x\) es la característica original.
  • \(\min(x)\) es el valor mínimo de la característica.
  • \(\max(x)\) es el valor máximo de la característica.

Ejemplo en Python

# Datos de ejemplo
data = np.array([1, 2, 3, 4, 5])

# Calcular mínimo y máximo
min_val = np.min(data)
max_val = np.max(data)

# Escalar los datos
scaled_data_min_max = (data - min_val) / (max_val - min_val)

print("Datos escalados con min-max:", scaled_data_min_max)

Errores típicos / trampas

  1. Omisión de valores faltantes: Si hay valores faltantes en los datos, es importante reemplazarlos o eliminarlas antes del escalado.
  2. Desviación estándar cero: Si una característica tiene una desviación estándar igual a cero (todos los valores son iguales), el escalado estándar se verá afectado ya que dividir por cero no es posible.
  3. Ignorar variables categoricas: El escalado solo debe aplicarse a características numéricas, las variables categóricas deben manejarse de manera diferente.

Checklist accionable

  1. Verifica que tus datos no contengan valores faltantes antes de comenzar el escalado.
  2. Calcula la media y desviación estándar (o mínimo y máximo) antes de aplicar el escalado.
  3. Revisa si hay características con desviaciones estándar cero para manejarlas adecuadamente.
  4. Asegúrate de no mezclar variables numéricas con variables categóricas en tu proceso de escalado.
  5. Verifica que tus datos estén en el rango correcto después del escalado.

Cierre

Siguientes pasos

  • Aprende sobre escalado automático: Una vez que comprendes cómo hacerlo manualmente, es útil aprender a usar herramientas como StandardScaler y MinMaxScaler de Scikit-learn para automatizar este proceso.
  • Explora más técnicas de preprocesamiento: Hay muchas otras técnicas de preprocesamiento que puedes aplicar, como codificación one-hot o imputación de valores faltantes.
  • Practica con proyectos reales: Aplica tus conocimientos en proyectos prácticos para obtener experiencia real y mejorar tus habilidades.

¡Esperamos que esta guía te haya sido útil para entender y aplicar el escalado manual en tu proceso de machine learning!

Contacto

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