Este proyecto aplica técnicas de clustering (aprendizaje no supervisado) para agrupar pilotos de Fórmula 1 según su rendimiento histórico.
total_points: Total de puntos acumuladosavg_position: Posición promedio en carrera (menor = mejor)total_wins: Cantidad de victoriasraces_count: Cantidad de carreras disputadas
Todos los datos son normalizados y se eliminan outliers antes del análisis.
Se utiliza el algoritmo KMeans para agrupar pilotos en 3 clusters. Los nombres de los grupos se asignan automáticamente según el rendimiento promedio:
- 🟢 Top Tier: Pilotos con alto puntaje, buenas posiciones y muchas carreras.
- 🟡 Midfield: Rendimiento intermedio.
- 🟣 Backmarkers: Bajo puntaje y posiciones lejanas.
- Gráfico estático con
matplotlibdonde el tamaño de los puntos es proporcional a la cantidad de carreras (races_count). - Gráfico interactivo con Plotly donde podés ver nombre, puntos, victorias, y carreras al pasar el mouse.
- 📊
output/driver_clusters.xlsx: contiene todos los pilotos con sus métricas y cluster asignado. - 📋 Resumen por consola: promedio de métricas por grupo.
- Clonar el repositorio
- Configurar las variables en el archivo
.env - Ejecutar:
python src/clustering.py