Todos los proyectos · Euroleague Basketball
Predicción de clasificaciones
De la probabilidad a la certeza.
- Cliente
- Euroleague Basketball
- Año
- 2023
- Sector
- Deporte profesional / Baloncesto
- Rol
- PM · Desarrollo · I+D
- Servicio
- Ciencia de datos y desarrollo de software a medida
- Alcance
- 18 equipos · 34 jornadas · 9 partidos por jornada

Resumen
Cyberdelia construyó para Euroleague un motor que calcula, ronda a ronda, la peor posición posible de cada equipo si pierde todos los partidos que le quedan. Una respuesta matemática, no una estimación.
El reto
Euroleague necesitaba saber, con la mayor antelación posible, si un equipo ya tiene asegurada la clasificación para la siguiente fase, y poder comunicarlo con total fiabilidad.
El problema es combinatorio. Cada jornada tiene 9 partidos, es decir, 512 combinaciones de resultados posibles, y encadenar varias jornadas dispara el número de escenarios de forma exponencial. Además, los desempates dependen de los puntos de cada partido, un dato que no estaba disponible en la fuente utilizada.

El recorrido
El proyecto arrancó en 2021 como una prueba de concepto de aprendizaje automático y evolucionó, tras la revisión con Euroleague de enero de 2023, hacia la exploración y comparación de varias aproximaciones. Dos de ellas definen el caso: un modelo predictivo con IA y un motor determinista basado en un axioma matemático. Cada una responde a una pregunta distinta, y juntas dan a Euroleague una visión completa.
Aproximación 1 · Predicción con IA
La primera aproximación responde a la pregunta «¿qué probabilidad tiene un equipo de clasificarse?». Se siguió la metodología CRISP-DM, en ciclos iterativos que van de la comprensión del negocio y de los datos al modelado, la evaluación y el despliegue.
El dataset se construyó con datos reales de la API estadística de Euroleague: más de 60 variables por partido, como tiros de 2 y de 3, rebotes, asistencias, pérdidas, valoración o condición de local y visitante. Sobre ellos se trabajaron modelos de regresión logística y bosque aleatorio.
El resultado es una estimación útil para el análisis, pero una probabilidad no permite afirmar oficialmente que un equipo está clasificado.

Aproximación 2 · El axioma matemático
La segunda aproximación cambia la pregunta: «si este equipo pierde todos los partidos que le quedan, ¿en qué posición puede acabar, como mínimo?». La respuesta no es una estimación, es una certeza, y por tanto es comunicable.
Resolverlo exigía dominar la explosión combinatoria. Cuatro decisiones de diseño lo hicieron viable:
- Solo se conservan los escenarios en que el equipo analizado pierde, lo que reduce las 512 combinaciones por jornada a un máximo de 256.
- Se trabaja con un entorno ajustable de dos posiciones por encima y por debajo, porque los equipos alejados no alteran el resultado.
- El horizonte está parametrizado, por defecto en 8 rondas.
- Se eliminan las clasificaciones repetidas para ahorrar tiempo de cómputo.


La solución
La aplicación se compone de dos piezas independientes y autónomas. La primera se conecta de forma incremental a la API estadística de Euroleague, almacena los datos en MySQL y recalcula las clasificaciones solo cuando hay cambios, con ejecución diaria prevista por cron. La segunda presenta los resultados ya calculados en hoja de cálculo y en una aplicación web.
El algoritmo, ronda a ronda
El algoritmo parte de la temporada, la ronda actual y el equipo analizado. En cada ronda obtiene la clasificación vigente, identifica a los equipos empatados con el analizado, genera todas las combinaciones de la jornada siguiente y construye una tabla para cada escenario. De cada una registra la peor posición del equipo y, al final, devuelve la peor posición posible al cierre de la temporada regular.
Ante la falta de puntos por partido, los empates se resuelven siempre en contra del equipo analizado. Así, la posición devuelta es una cota pesimista garantizada.


Resultados
Con datos reales de la ronda 28 de la temporada 2022-2023, el sistema determinó que Olympiacos no bajaría de la 6.ª posición aunque perdiera todos sus partidos restantes.
| Equipo | Peor posición posible | Semáforo |
|---|---|---|
| Olympiacos Piraeus | 6.ª | |
| Real Madrid | 8.ª | |
| FC Barcelona | 8.ª | |
| Fenerbahçe Beko Istanbul | 10.ª | |
| AS Monaco | 11.ª | |
| Partizan Mozzart Bet Belgrade | 11.ª | |
| Cazoo Baskonia Vitoria-Gasteiz | 11.ª | |
| Zalgiris Kaunas | 12.ª | |
| Anadolu Efes Istanbul | 15.ª |
- Plaza garantizada
- Depende de otros resultados
- Sin garantía
Para cada equipo, la herramienta detalla la evolución ronda a ronda: escenarios generados, peor posición sin empates, número de empates, equipos implicados y posición final pesimista. Euroleague obtuvo una lectura inmediata de quién tiene la plaza garantizada y quién depende todavía de otros resultados.
Por qué funcionó
El valor no estuvo en el modelo más sofisticado, sino en formular bien la pregunta que el cliente necesitaba responder. La IA aporta contexto y tendencia; el axioma aporta la certeza que exige una comunicación oficial. Explorar y comparar ambos caminos permitió a Euroleague usar cada uno para lo que sirve.
La solución determinista se apoya en decisiones de ingeniería sencillas y explicables, de modo que el resultado es transparente y auditable: cualquier persona de la organización puede entender por qué un equipo está en verde. La propiedad intelectual de la solución quedó en manos de Euroleague.
Stack
- .NET
- C#
- Python
- MySQL
- API estadística Euroleague