Sports Performance Engine Por qué predecir LaLiga es más difícil de lo que parece

Python LightGBM XGBoost Elo rating football-data.co.uk API-Football FastAPI
Sports Performance Engine
Motor de predicción de resultados (1X2) de LaLiga entrenado con más de 6.000 partidos reales de 16 temporadas (football-data.co.uk, datos públicos). Features con higiene temporal estricta: rating Elo calculado partido a partido, forma reciente, goles y tiros a puerta rolling. Ensemble LightGBM + XGBoost con split temporal (test = temporadas 24/25 y 25/26). La evaluación es deliberadamente honesta: se compara contra las probabilidades implícitas de las cuotas de cierre (Pinnacle/B365, margen descontado), que son el techo práctico de esta tarea porque el mercado agrega información que las estadísticas públicas no tienen (alineaciones, lesiones, dinero informado). Resultado: el modelo recupera la mayor parte del edge del mercado usando solo datos públicos, quedando a 2.2 puntos de accuracy del cierre de los bookies.

Integración, datos y licencia

  • Integración: API REST propia (FastAPI) con 10 endpoints documentados en el repositorio; se puede consumir desde cualquier lenguaje o plataforma, con especificación OpenAPI autogenerada.
  • Tratamiento de datos: el procesamiento se realiza íntegramente en el servidor del proyecto, sin enviar datos a servicios de IA de terceros. No se almacenan las consultas de la demo.
  • Licencia: MIT — uso libre, incluido comercial, manteniendo el aviso de copyright. El repositorio contiene la aplicación completa y puede desplegarse en infraestructura propia. El código es gratuito; los costes de motor de IA, infraestructura, implantación y mantenimiento corren por cuenta de quien lo despliega (no se ofrece soporte ni consultoría).

¿Cómo lo integro?

Disponible ahora: API REST con clasificación en vivo, próximos partidos y predicciones por competición.

Integraciones habituales en este sector (valoradas como vía recomendada; salvo que se indique lo contrario, no vienen implementadas — el código está preparado para añadirlas):

  • API-Football / SportMonks: proveedores de datos deportivos para ampliar a más ligas sin montar el scraping propio.
  • Opta / StatsPerform: datos de evento (por jugada) si se quiere subir el nivel del modelo; son de pago y con contrato.
  • Medios y webs deportivas: widget embebible con la predicción del próximo partido; el uso más directo del endpoint tal cual está.

Resultados

52.6%
accuracy del modelo (test 24/25-25/26)
vs 54.9% del mercado (cuotas de cierre) y 46.7% del baseline ingenuo
6.031
partidos REALES
16 temporadas de LaLiga · football-data.co.uk · split temporal
−2.2 pp
gap honesto vs bookies
el mercado es el techo práctico; el modelo solo usa stats públicas
Elo + forma
features con higiene temporal
rating Elo partido a partido, sin filtración de futuro

Funcionalidades implementadas

  • Datos reales StatsBomb. Entrenado sobre StatsBomb Open Data con estadísticas de evento de LaLiga y Champions League, las más detalladas del mundo del fútbol.
  • Ensemble LightGBM + XGBoost. Dos modelos optimizados con Optuna se combinan en ensemble pesado. La predicción final combina la fortaleza de ambos algoritmos.
  • Explicabilidad por partido. SHAP TreeExplainer desglosa cada predicción: qué features empujaron hacia victoria local, empate o visitante y en qué medida.
  • Rolling stats temporales. Las features capturan la forma reciente del equipo (últimos 5/10 partidos) con medias móviles de xG, presiones y posesión.
Try Live Demo View Code

Cómo está construido

Sports Performance Engine: predecir fútbol con datos StatsBomb y un ensemble LightGBM+XGBoost El fútbol es ruidoso: gana el peor equipo más de lo que la gente cree. Con datos StatsBomb, features rolling y un ensemble LightGBM+XGBoost validado con TimeSeriesSp...