Preparación para ML: Proyecto guiado completo
Introducción
La preparación de datos es un paso crucial en la ciencia de datos, especialmente cuando se aborda el aprendizaje automático (ML). En este proyecto guiado, aprenderás a transformar un dataset en uno que esté listo para ser utilizado por modelos ML. Este proceso implica varias etapas, desde la exploración inicial hasta la generación de características y la eliminación de datos irrelevantes.
Explicación principal con ejemplos
Vamos a trabajar con el dataset "Ventas diarias" de una tienda ficticia. Esta base de datos contiene información sobre ventas por día, incluyendo detalles del producto vendido, el precio, la cantidad vendida y los costos asociados.
Exploración inicial
Antes de hacer cualquier cambio, es crucial entender el dataset. Vamos a realizar algunas consultas básicas para obtener un panorama general:
SELECT
COUNT(*) AS total_rows,
COUNT(DISTINCT date) AS distinct_dates,
COUNT(DISTINCT product_id) AS distinct_products,
SUM(sales_amount) AS total_sales
FROM ventas_diarias;
Transformación de datos
1. Limpieza y preparación básica
Errores comunes:
- Olvidar llenar valores nulos.
- No normalizar datos (por ejemplo, precios en diferentes monedas).
-- Manejo de valores nulos en el precio del producto
UPDATE ventas_diarias
SET unit_price = 0
WHERE unit_price IS NULL;
-- Normalización de precios a una única moneda
UPDATE ventas_diarias
SET unit_price = unit_price / 1.25 -- Suponiendo que se convierte de euros a dólares
WHERE currency_type = 'euros';
2. Generación de características
Errores comunes:
- Agregar características irrelevantes.
- Olvidar considerar el contexto del negocio al crear nuevas columnas.
-- Creando una nueva columna para el costo por unidad
ALTER TABLE ventas_diarias
ADD COLUMN cost_per_unit DECIMAL(10, 2) AS (cost / quantity);
-- Generando un indicador para días de alta temporada
WITH temporada AS (
SELECT date, product_id,
CASE
WHEN date BETWEEN '2023-05-01' AND '2023-12-25' THEN 1
ELSE 0
END AS es_temporada
FROM ventas_diarias
)
SELECT * FROM temporada;
3. Agrupaciones y agregados
Errores comunes:
- Usar funciones de agregación incorrectamente.
- No entender el impacto del
GROUP BY.
-- Agrupando por producto y calcular los ingresos totales
SELECT product_id, SUM(sales_amount) AS total_revenue
FROM ventas_diarias
GROUP BY product_id;
-- Error: Olvidar incluir una columna en GROUP BY al usar funciones de agregación.
-- CORRECTO:
SELECT date, SUM(sales_amount)
FROM ventas_diarias
GROUP BY date;
Errores típicos / trampas
- Funciones de agregación incorrectas: Usar
SUMpara conteos oAVGpara sumas. - Olvidar normalizar datos: Ignorar la unificación de unidades y monedas puede causar distorsiones en el análisis.
- Columnas innecesarias: Crear características que no aportan valor al modelo.
Checklist accionable
- Llenar o eliminar valores nulos en las columnas relevantes.
- Normalizar los datos para una consistencia uniforme (precios, fechas, etc.).
- Generar nuevas columnas basadas en el contexto del negocio y la lógica de negocio.
- Agrupar y agregar funciones de agregación apropiadamente sin olvidar incluir todas las columnas necesarias en
GROUP BY. - Validar los resultados con consultas explícitas para asegurar que todo esté correcto.
Cierre: Siguientes pasos
- Avanzar a Pandas: Utiliza la base de datos preparada para explorarla más profundamente utilizando Python y Pandas.
- Aplicar técnicas ML: Importa los datos en un entorno de desarrollo y aplica algoritmos básicos de aprendizaje automático.
- Análisis adicional: Considera agregar más características relevantes o realizar análisis adicionales para mejorar el rendimiento del modelo.
¡Esperamos que este proyecto te haya ayudado a comprender mejor la preparación de datos en SQL y su importancia para el machine learning!