Curso: Minería de Datos · Ingeniería de Software · 9.° semestre · UPCh · 2026A
Sistema completo de minería de datos sobre el dataset Road Traffic Accidents (Addis Abeba, Etiopía). Incluye EDA, preprocesamiento, data warehouse dimensional en DuckDB, modelos de regresión y clasificación, API REST en Node.js y frontend en React.
- Python 3.10+
- Node.js 18+
- npm 9+
rta-pipeline/ ├── data/ # Dataset original y archivos procesados ├── notebooks/ # EDA y preprocesamiento (Jupyter) ├── ml/ # Modelos entrenados y servidor Flask ├── warehouse/ # Base de datos DuckDB ├── api/ # API REST (Node.js + Express) ├── frontend/ # Aplicación React └── README.md
git clone <url-del-repo>
cd rta-pipelinepython -m venv venv
# Windows
venv\Scripts\activate
# Mac/Linux
source venv/bin/activate
pip install pandas numpy matplotlib seaborn scikit-learn duckdb jupyter notebook imbalanced-learn flaskDescarga RTA_Dataset.csv de Kaggle y colócalo en:
data/RTA_Dataset.csv
Abre VS Code, navega a notebooks/01_eda_preprocessing.ipynb y ejecuta todas las celdas en orden.
Esto genera automáticamente:
data/rta_clean.csvdata/rta_clean_encoded.csvdata/encoders.pklml/model_regression.pklml/model_classification.pklml/features.pklwarehouse/rta_warehouse.duckdb
cd api
npm install
cd ..cd frontend
npm install
cd ..Se necesitan tres terminales simultáneas:
# Con el venv activado, desde la raíz del proyecto
python ml/predict_server.pyCorre en: http://localhost:5000
cd api
npm run devCorre en: http://localhost:3001
cd frontend
npm run devCorre en: http://localhost:5173
Abre el navegador en http://localhost:5173
| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/olap/por-dia |
Accidentes y víctimas por día |
| GET | /api/olap/severidad-franja |
Severidad por franja horaria |
| GET | /api/olap/por-vehiculo |
Top vehículos con más accidentes |
| GET | /api/olap/clima-fatalidad |
Clima vs accidentes fatales |
| GET | /api/olap/causa-por-area |
Causa más frecuente por área |
| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/predict/options |
Opciones válidas para el formulario |
| POST | /api/predict/both |
Regresión + clasificación simultánea |
| POST | /api/predict/regression |
Solo regresión |
| POST | /api/predict/classification |
Solo clasificación |
| Tarea | Algoritmo | Métrica principal | Resultado |
|---|---|---|---|
| Regresión | Random Forest Regressor | MAE | 0.65 |
| Clasificación | Random Forest Classifier | F1 Macro | 0.38 |