Saltar al contenido
Volver al trabajo
Case study

FutbolVision

Predice el resultado de partidos de fútbol con un modelo de machine learning.

Mi rol

IA/ML y arquitectura.

Equipo

  • Felipe Doval · IA/ML + arquitectura
  • Nicolás Fuksman · UX/UI
  • Pedro Henríquez · Frontend

Stack

  • Next.js
  • FastAPI
  • XGBoost
  • Sportmonks API
  • Python

El problema

Predecir cómo termina un partido con lo que se sabe antes de que empiece: los antecedentes entre los dos equipos, la forma de cada uno, las lesiones y el contexto de la liga.

La solución

Un XGBoost Regressor de ~60 features, alimentado por la API de Sportmonks (plan Growth), que devuelve el marcador estimado y la probabilidad de cada resultado. Cada predicción se abre y muestra los parámetros que la sostienen.

Decisiones y features

XGBoost Regressor con ~60 features sobre datos de Sportmonks.

Cada predicción se abre y muestra por qué: H2H, forma, lesiones, contexto y xG.

Las predicciones se guardan y se siguen, en vivo o pre-match.

Plan de marketing completo: análisis de audiencia, competitivo y Cinco Fuerzas de Porter.

Capturas

Predicción de Arsenal vs Sporting CP: marcador estimado, las tres probabilidades del modelo y el análisis por parámetro que las respalda (H2H, forma, lesiones, contexto y xG)
Las predicciones guardadas, filtrables entre en vivo y pre-match: cada una con su marcador estimado, las tres probabilidades y el modelo que la generó

Aprendizajes

  • Elegir bien las features importa tanto como el modelo: un XGBoost solo es tan bueno como lo que se le da de comer.
  • Separar frontend (Next.js) y servicio de ML (FastAPI) mantiene el modelo independiente de la UI.