Traffic Analyzer es un sistema avanzado de análisis de tráfico vehicular que utiliza técnicas de Machine Learning para procesar, analizar y predecir patrones de tráfico. El sistema está diseñado para trabajar con datos de sensores de tráfico almacenados en archivos Excel, proporcionando insights valiosos para la gestión del tráfico urbano.
- Carga automática de datos: Procesamiento recursivo de archivos Excel desde múltiples carpetas
- Preprocesamiento inteligente: Limpieza de datos, detección de valores atípicos y normalización
- Análisis temporal: Identificación de patrones por hora, día de la semana y estacionalidad
- Detección de horas punta: Identificación automática de períodos de alta congestión
- Modelos predictivos: Random Forest para predicción de flujo vehicular y ocupación
- Detección de anomalías: Isolation Forest para identificar datos atípicos
- Análisis de clustering: K-means para identificar patrones de tráfico similares
- Ingeniería de características: Extracción automática de features temporales y categóricas
- Dashboards interactivos: Visualizaciones comprensivas con matplotlib y seaborn
- Heatmaps temporales: Análisis de patrones por hora y día de la semana
- Análisis comparativo: Comparación entre diferentes períodos (2024 vs 2025)
- Métricas de rendimiento: Visualización de la importancia de características
- Predicción en tiempo real: Estimación de flujo y ocupación para condiciones específicas
- Análisis de tendencias: Identificación de cambios significativos en el tráfico
- Clustering de patrones: Agrupación de comportamientos similares de tráfico
- Python 3.7 o superior
- Jupyter Notebook
- Google Colab (opcional)
pip install pandas numpy matplotlib seaborn plotly scikit-learn
pip install openpyxl xlrd
- Abrir el notebook en Google Colab
- Montar Google Drive para acceder a los archivos de datos
- Ejecutar las celdas de instalación de dependencias
El sistema espera archivos Excel con la siguiente estructura:
Columna | Descripción | Tipo |
---|---|---|
Fecha |
Fecha de la medición | DateTime |
Hora |
Hora de la medición | Time |
Pista |
Identificador de la pista | Integer |
Flujo |
Número de vehículos | Float |
Ocupación |
Tiempo de ocupación en ms | Float |
/content/drive/MyDrive/Mediciones/
├── 2024/
│ ├── enero/
│ │ ├── medicion_01.xlsx
│ │ └── medicion_02.xlsx
│ └── febrero/
└── 2025/
└── enero/
└── medicion_01.xlsx
# Inicializar el analizador
analyzer = TrafficAnalyzer()
# Cargar todos los archivos Excel
analyzer.load_all_excel_files()
# Ejecutar análisis completo
analyzer.generate_comprehensive_report()
# Comparar tráfico entre 2024 y 2025
results = analyzer.analyze_peak_hours_comparison()
# Entrenar modelos predictivos
rf_flujo, rf_ocupacion, features = analyzer.ml_traffic_prediction()
# Realizar predicción
flujo_pred, ocupacion_pred = predict_traffic(
analyzer, rf_flujo, rf_ocupacion, features,
hora=8, pista=1, dia_semana=1, mes=7
)
# Identificar patrones de tráfico
patterns, kmeans_model = analyzer.clustering_analysis()
- R² Score: Coeficiente de determinación para evaluar la calidad del modelo
- MAE (Mean Absolute Error): Error absoluto medio
- RMSE (Root Mean Square Error): Raíz del error cuadrático medio
- Visualizaciones temporales: Gráficos de flujo y ocupación por hora/día
- Heatmaps: Mapas de calor que muestran patrones de tráfico
- Clusters de comportamiento: Agrupaciones de patrones similares
- Predicciones: Estimaciones de tráfico futuro
- Reportes estadísticos: Resúmenes numéricos y comparativos
analyzer = TrafficAnalyzer()
analyzer.peak_hours_morning = (6, 10) # 6 AM - 10 AM
analyzer.peak_hours_evening = (16, 21) # 4 PM - 9 PM
# Personalizar Random Forest
rf_flujo = RandomForestRegressor(
n_estimators=200,
max_depth=15,
random_state=42
)
# Personalizar detección de outliers
iso_forest = IsolationForest(
contamination=0.05, # 5% de outliers esperados
random_state=42
)
- Identificación de cuellos de botella
- Optimización de semáforos
- Planificación de rutas alternativas
- Evaluación de la capacidad de las vías
- Planificación de ampliaciones
- Estudios de impacto de nuevas construcciones
- Estimación de tráfico futuro
- Planificación de eventos especiales
- Gestión proactiva de congestiones
Las contribuciones son bienvenidas. Para contribuir:
- Fork el repositorio
- Crear una rama feature (
git checkout -b feature/AmazingFeature
) - Commit los cambios (
git commit -m 'Add some AmazingFeature'
) - Push a la rama (
git push origin feature/AmazingFeature
) - Abrir un Pull Request
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
- Desarrollado para análisis de tráfico vehicular urbano
- Utiliza bibliotecas de código abierto de la comunidad Python
- Inspirado en metodologías de ingeniería de tráfico moderna
Para preguntas, sugerencias o soporte técnico, por favor contacta al equipo de desarrollo: proyectos@eleventechs.cl
Nota: Este sistema está optimizado para trabajar con Google Colab y requiere acceso a Google Drive para la carga de archivos de datos.