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
- Omisión de valores faltantes: Si hay valores faltantes en los datos, es importante reemplazarlos o eliminarlas antes del escalado.
- 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.
- Ignorar variables categoricas: El escalado solo debe aplicarse a características numéricas, las variables categóricas deben manejarse de manera diferente.
Checklist accionable
- Verifica que tus datos no contengan valores faltantes antes de comenzar el escalado.
- Calcula la media y desviación estándar (o mínimo y máximo) antes de aplicar el escalado.
- Revisa si hay características con desviaciones estándar cero para manejarlas adecuadamente.
- Asegúrate de no mezclar variables numéricas con variables categóricas en tu proceso de escalado.
- 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
StandardScaleryMinMaxScalerde 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!