Ventas globales de bicicletas 2013–2023 en Databricks
Proyecto integrador de punta a punta: exploración con PySpark, hipótesis de negocio y regresión
Problema
Recorrer un proyecto completo de ciencia de datos («50 pasos») sobre ventas de bicicletas: plantear hipótesis de negocio, preparar los datos y predecir la cantidad por orden (Order_Quantity).
Datos
Global Bike Sales Dataset 2013–2023 (Kaggle): costos, precios, ingresos, envío, edad, sexo y país de clientes. Tablas en workspace.default (bike_sales_order, bike_sales_complete).
Métodos
- Exploración con Spark DataFrames y visualizaciones de Databricks
- 3 hipótesis de negocio (ingresos por región, unidades por orden, ingreso por grupo de edad)
- Exclusión de Profit/Cost/Revenue por fuga de información
- Regresión lineal evaluada con R², MAE y RMSE (el notebook usa Spark ML y scikit-learn)
- Análisis de residuos y severidad del error por percentiles
- Enriquecimiento con Product, Sub_Category y Unit_Price + Random Forest
- K-means (ejercicio del curso)
Resultados
- Regresión lineal sobre Order_Quantity (entrega): MAE 5.9154, RMSE 7.6347, R² 0.3594 en prueba.
- Random Forest con Product, Sub_Category y Unit_Price añadidos: R² 0.8083 en prueba (0.9728 en entrenamiento) y MAE 2.84 unidades, frente a 5.92 de la regresión lineal.
Corregido después de la entrega: el notebook atribuía el R² 0.8083 a la regresión lineal; la celda se ejecutó después de que el Random Forest reemplazara la variable `model`. Re-ejecución local (scikit-learn, sin Spark): Random Forest R² 0.8088 en prueba y 0.9728 en entrenamiento, MAE 2.84; regresión lineal R² 0.358. Las cifras publicadas son las de la entrega, con la atribución corregida.