TFG · Desarrollo web, datos y aprendizaje automático
Pitch Rivals
Un juego multijugador de fútbol inspirado en ligas Fantasy en el que eliges cartas de jugadores según predicciones de rendimiento y compites con los resultados de partidos reales.
Mi contribución
Desarrollé el proyecto completo: tratamiento de datos, modelos predictivos, reglas del juego, API, interfaz web, rival automático y despliegue.

- TFG · 9,4/10
- 18 objetivos predictivos aceptados
- 75 pruebas de backend
Cómo se juega una jornada
Creas una liga o te unes con un código. En cada jornada compites con los demás participantes y con El Chatarrero, un rival automático que aprovecha las cartas que descartáis. Todo funciona con Scouting Points (SP), una moneda virtual sin dinero real.
Elige 3 de 5 cartas
Cada carta combina un futbolista y un objetivo, como marcar un gol. Comparas probabilidad y recompensa, puedes renovar el mercado gastando SP y confirmas tres cartas. Las otras dos van a los descartes de la liga.
Enfréntate a El Chatarrero
Al cerrarse el draft, el rival automático elige entre los descartes según su valor esperado. Puedes gastar SP en apostar virtualmente a que alguna de sus predicciones no se cumplirá: las posiciones en corto.
Se disputan los partidos
Al comenzar la jornada se bloquean las decisiones. El resultado depende del rendimiento real de los futbolistas, no de una simulación del partido.
Consulta resultados y clasificación
Después se importan las estadísticas reales, se resuelven los objetivos y las posiciones en corto, y se actualizan los saldos y la clasificación de la liga.

Modelos evaluados sin adelantar información
Preparé un proceso ETL con datos de LaLiga de las temporadas 2020/21 a 2024/25 y construí variables de historial y forma reciente. Las estadísticas se desplazan temporalmente para que cada predicción use únicamente información anterior al partido.
Entrené modelos XGBoost y ajusté sus parámetros con Optuna. La evaluación reservó un bloque temporal de 1.431 registros, separado del entrenamiento. De 19 objetivos binarios, 18 superaron el umbral de AUC de 0,65; descarté el de tarjetas amarillas.
Comparé también calibración isotónica y sigmoide. Como no mejoraron globalmente los resultados, mantuve las probabilidades originales de los modelos.

Reglas, interfaz y consistencia de resultados
- API con FastAPI y persistencia en PostgreSQL, con modelos y migraciones de base de datos.
- Interfaz React y TypeScript para ligas, selección de jugadores, enfrentamientos, resultados y clasificación.
- Rival automático 'El Chatarrero', cambios de selección y mecánicas de riesgo con economía virtual.
- Resolución de objetivos a partir de estadísticas reales y 75 pruebas de backend documentadas en la memoria.

Qué demuestra este proyecto
Es el proyecto en el que he trabajado de forma más completa: desde preparar los datos y evaluar modelos hasta decidir cómo explicarlos en pantalla y convertirlos en reglas de juego. El TFG obtuvo una calificación de 9,4/10.
El periodo enero–julio incluye la investigación, el desarrollo, la memoria y la defensa; el historial del repositorio recoge principalmente la fase de implementación.
El proyecto en funcionamiento
3:03Qué se muestra en el vídeo
La grabación recorre las ligas, la selección de jugadores y objetivos, el enfrentamiento, los resultados y la clasificación. Las probabilidades determinan el riesgo y la recompensa en Scouting Points (moneda virtual); las estadísticas de partidos reales resuelven los objetivos.
Código y documentación disponibles.