Skip to content

skinny10/Proyect_data_mining

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RTA Pipeline — Road Traffic Accidents

Pipeline Full Stack de Minería de Datos

Curso: Minería de Datos · Ingeniería de Software · 9.° semestre · UPCh · 2026A


Descripción

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.


Requisitos previos

  • Python 3.10+
  • Node.js 18+
  • npm 9+

Estructura del proyecto

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


Pasos de reproducción

1. Clonar el repositorio y entrar a la carpeta

git clone <url-del-repo>
cd rta-pipeline

2. Crear entorno virtual de Python e instalar dependencias

python -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 flask

3. Colocar el dataset original

Descarga RTA_Dataset.csv de Kaggle y colócalo en: data/RTA_Dataset.csv

4. Ejecutar el notebook de EDA y preprocesamiento

Abre VS Code, navega a notebooks/01_eda_preprocessing.ipynb y ejecuta todas las celdas en orden.

Esto genera automáticamente:

  • data/rta_clean.csv
  • data/rta_clean_encoded.csv
  • data/encoders.pkl
  • ml/model_regression.pkl
  • ml/model_classification.pkl
  • ml/features.pkl
  • warehouse/rta_warehouse.duckdb

5. Instalar dependencias de la API

cd api
npm install
cd ..

6. Instalar dependencias del frontend

cd frontend
npm install
cd ..

Arranque de la aplicación

Se necesitan tres terminales simultáneas:

Terminal 1 — Servidor de modelos Python

# Con el venv activado, desde la raíz del proyecto
python ml/predict_server.py

Corre en: http://localhost:5000

Terminal 2 — API Node.js

cd api
npm run dev

Corre en: http://localhost:3001

Terminal 3 — Frontend React

cd frontend
npm run dev

Corre en: http://localhost:5173

Abre el navegador en http://localhost:5173


Endpoints de la API

OLAP

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

Predicción

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

Modelos

Tarea Algoritmo Métrica principal Resultado
Regresión Random Forest Regressor MAE 0.65
Clasificación Random Forest Classifier F1 Macro 0.38

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors