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 ·

Agregaciones por entidad

Agregaciones por entidad: Feature engineering en SQL

Introducción

El feature engineering es una etapa crucial en la ciencia de datos, donde creamos características (features) a partir de los datos brutos para mejorar el rendimiento y precisión de nuestros modelos de machine learning. En este artículo, exploraremos cómo realizar agregaciones por entidad utilizando SQL como paso previo a Machine Learning.

Las agregaciones por entidad implican agrupar los datos según una variable específica y luego aplicar funciones de agregación (como COUNT, SUM, AVG) en otras columnas del conjunto de datos. Esta técnica es fundamental para crear características relevantes que pueden mejorar el rendimiento de nuestros modelos.

Explicación principal con ejemplos

Consideremos un dataset de pedidos en una tienda en línea:

CREATE TABLE pedidos (
    id_pedido INT PRIMARY KEY,
    fecha TIMESTAMP,
    usuario_id VARCHAR(50),
    producto_id VARCHAR(50),
    cantidad INT,
    precio DECIMAL(10, 2)
);

Vamos a crear algunas características relevantes por usuario y producto.

Ejemplo: Agregaciones por usuario

SELECT 
    usuario_id,
    COUNT(*) AS num_pedidos,
    SUM(cantidad) AS total_cantidad,
    AVG(precio) AS precio_medio_pedido
FROM pedidos
GROUP BY usuario_id;

Este ejemplo nos proporciona las siguientes características:

  • num\_pedidos: Cantidad de pedidos realizados por cada usuario.
  • total\_cantidad: Total de productos comprados por cada usuario.
  • precio\_medio\_pedido: Promedio del precio de los productos en los pedidos realizados por cada usuario.

Ejemplo: Agregaciones por producto

SELECT 
    producto_id,
    COUNT(*) AS num_pedidos_producto,
    SUM(cantidad) AS total_cantidad_producto,
    AVG(precio) AS precio_medio_pedido_producto
FROM pedidos
GROUP BY producto_id;

Este ejemplo nos proporciona las siguientes características:

  • num\_pedidos\_producto: Cantidad de veces que el producto fue comprado.
  • total\_cantidad\_producto: Total de unidades vendidas del producto.
  • precio\_medio\_pedido\_producto: Promedio del precio en los pedidos que contuvieron ese producto.

Errores típicos / trampas

  1. Omitir columnas relevantes en el GROUP BY:
  • Errores comunes: Olvidar agregar alguna columna a la lista de agrupación puede llevar a resultados inexactos o incluso error en la consulta.
  • Solución: Siempre verifique que todas las columnas utilizadas en una función de agregación estén incluidas en GROUP BY.
  1. Usar funciones de agregación incorrectamente:
  • Errores comunes: A menudo, se confunden los usos adecuados de funciones como SUM, AVG y COUNT.
  • Solución: Familiarízase con las diferencias entre estas funciones. Por ejemplo, COUNT(*) cuenta todos los registros, mientras que SUM(columna) suma valores numéricos.
  1. Olvidar ordenar la salida:
  • Errores comunes: No ordenar los resultados puede llevar a interpretaciones erróneas de las características generadas.
  • Solución: Asegúrese siempre de usar ORDER BY si necesita ordenar los resultados para una mejor comprensión.

Checklist accionable

  1. Verifique que todas las columnas utilizadas en funciones de agregación estén incluidas en GROUP BY.
  2. Asegurese de utilizar correctamente las funciones de agregación como SUM, AVG, y COUNT.
  3. Ordenar los resultados con ORDER BY para una mejor comprensión.
  4. Utilice subconsultas o CTEs (WITH) para consultas complejas que requieren múltiples pasos.
  5. Validar los datos agregados utilizando consultas simples como SELECT DISTINCT ... FROM ... y WHERE.

Siguientes pasos

  • Análisis de datos adicional: Explorar más características por usuario, producto o cualquier otra entidad relevante en su conjunto de datos.
  • Modelado de Machine Learning: Utilizar las características generadas para entrenar modelos de machine learning y evaluar su rendimiento.
  • Optimización del feature engineering: Continuar iterando sobre el proceso de feature engineering para mejorar la precisión de los modelos.

A través de esta técnica, podemos crear una base sólida de características relevantes que pueden mejorarse constantemente en función de las necesidades del proyecto.

Contacto

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