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
  • Ciencia de datos
  • IA
  • Machine learning
  • Algoritmia
  • CRISP-DM
  • Deporte
¿Se clasificará este equipo? La IA da una probabilidad estimada; el axioma matemático da la peor posición garantizada.

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.

Recorrido del proyecto, de la prueba de concepto de 2021 a la comparación de aproximaciones en 2023.

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 IA: el ciclo de datos CRISP-DM.

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.
Domar la explosión combinatoria: 9 partidos, 512 resultados, 256 escenarios, ±2 rivales, sin clasificaciones duplicadas → peor posición garantizada.
Arquitectura: ingesta incremental de la API, MySQL, recálculo y presentación en hoja de cálculo y web.

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.

El algoritmo, ronda a ronda.
Cómo se lee el resultado: Olympiacos, ronda 28, no baja de la 6.ª posición.

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.

EquipoPeor posición posibleSemáforo
Olympiacos Piraeus6.ª
Real Madrid8.ª
FC Barcelona8.ª
Fenerbahçe Beko Istanbul10.ª
AS Monaco11.ª
Partizan Mozzart Bet Belgrade11.ª
Cazoo Baskonia Vitoria-Gasteiz11.ª
Zalgiris Kaunas12.ª
Anadolu Efes Istanbul15.ª
  • 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

¿Tienes un proyecto parecido?

Hablemos detu producto.

→ hey@cyberdelia.es