Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

SQL para ciencia de datos, Unidad 10 — SQL como paso previo a Machine Learning, 10.1 — Feature engineering en SQL ·

Preparar datasets para ML

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

  1. 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.
  1. 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.
  1. 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

  1. Validar las variables originales: Asegúrate de que todas las variables iniciales sean relevantes para el problema.
  2. 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.
  3. Usar CASE WHEN con cuidado: Asegúrate de que las categorías creadas sean pertinentes y no sobrecarguen el modelo.
  4. Evitar la pérdida accidental de datos: Realiza copias de seguridad antes de hacer cambios en los datos originales.
  5. 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.

Contacto

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