Preparar datasets para ML
Introducción
En la transición de los datos a través del análisis hasta su uso en modelos de Machine Learning (ML), se realiza un paso crucial: el Feature Engineering. Este proceso implica la transformación y creación de características (features) desde las observaciones originales para mejorar la capacidad de predicción de los modelos ML. Es un componente vital que puede diferenciar entre un modelo con rendimiento aceptable y uno altamente efectivo.
Explicación principal
Transformación y agregación de datos
El Feature Engineering en SQL implica varias operaciones como la creación de nuevas columnas basadas en las existentes, cálculos agregados y el manejo de variables categorías. Por ejemplo:
-- Crear una nueva columna con valores derivados
SELECT
id,
nombre,
precio_unitario * cantidad_comprada AS importe_total,
CASE
WHEN precio_unitario > 10 THEN 'caro'
ELSE 'barato'
END AS categoria_precio
FROM ventas;
-- Agrupación de datos para crear características agregadas
SELECT
mes,
AVG(importe_total) OVER (PARTITION BY mes) AS importe_promedio_mensual,
COUNT(*) OVER (PARTITION BY mes) AS num_ventas_mensual
FROM ventas;
Ejemplo práctico
Imaginemos un conjunto de datos con registros de compras en una tienda. Podemos crear nuevas características que podrían ser útiles para una tarea de clasificación o regresión:
-- Crear nuevas columnas y agregaciones
SELECT
id,
nombre_producto,
precio_unitario,
cantidad_comprada,
precio_unitario * cantidad_comprada AS importe_total,
CASE
WHEN precio_unitario > 50 THEN 'alto'
ELSE 'bajo'
END AS categoria_precio,
AVG(precio_unitario) OVER (PARTITION BY nombre_producto) AS promedio_categoria,
COUNT(*) OVER (PARTITION BY mes, nombre_producto) AS num_ventas_producto
FROM compras;
Errores típicos / trampas
- Borrado accidental de datos importantes: Al modificar o borrar columnas en los datos originales, puede perder información valiosa que podría haber sido necesaria para el entrenamiento del modelo.
- Categorización incorrecta de variables: La creación incorrecta de categorías puede llevar a modelos sesgados o inexactos. Por ejemplo, crear una categoría 'bajo' para precios menores a 50 cuando en realidad se requieren valores más específicos puede afectar el rendimiento.
- Sobrecarga y subcategorización: Al crear demasiadas características, se corre el riesgo de overfitting (sobreajuste), donde el modelo se ajusta demasiado a los datos de entrenamiento y no generaliza bien a otros conjuntos de datos. En contraste, la falta de suficientes características puede resultar en underfitting.
Checklist accionable
- Validar las variables originales: Asegúrate de que todas las variables iniciales sean relevantes para el problema.
- Crear nuevas columnas solo cuando sea necesario: Evita crear muchas columnas basadas en la misma variable sin razón, lo cual puede llevar a overfitting.
- Usar CASE WHEN con cuidado: Asegúrate de que las categorías creadas sean pertinentes y no sobrecarguen el modelo.
- Evitar la pérdida accidental de datos: Realiza copias de seguridad antes de hacer cambios en los datos originales.
- Mantener registros detallados: Documenta cada paso del Feature Engineering para que sea fácil seguir el proceso en el futuro.
Cierre
Siguientes pasos
- Explorar más recursos sobre Feature Engineering: Investigación adicional puede proporcionarte nuevas perspectivas y técnicas útiles.
- Practicar con datasets reales: Aplica los conocimientos aprendidos a conjuntos de datos reales para mejorar tu comprensión y habilidades.
- Participa en proyectos de Machine Learning: Toma parte en desafíos o proyectos de ML para poner a prueba tus habilidades.
Preparar datasets eficaces es una habilidad crucial en la ciencia de datos. Con el Feature Engineering, puedes transformar simples observaciones en poderosas características que impulsan modelos de ML hacia un rendimiento superior.