← Volver al portfolio

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.

Periodo
Ene–Jul 2026
Equipo
Proyecto individual
Contexto
Trabajo Fin de Grado en la Universidad de Sevilla · Calificación: 9,4/10.
Mi función
Ingeniería de requisitos, diseño y desarrollo completo de la aplicación

Mi contribución

Desarrollé el proyecto completo: tratamiento de datos, modelos predictivos, reglas del juego, API, interfaz web, rival automático y despliegue.

  • React
  • TypeScript
  • Python
  • FastAPI
  • PostgreSQL
  • XGBoost
  • Pandas
  • Optuna
  • SQLAlchemy
  • Docker
Inicio de sesión de Pitch Rivals
Pantalla de acceso a Pitch Rivals.
  • 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Face-Off con las cartas elegidas por El Chatarrero y las opciones para abrir posiciones en corto
Face-Off: objetivos de El Chatarrero, coste de cada posición en corto y ganancia potencial, antes de que empiecen los partidos.

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.

Diagramas de fiabilidad para realizar al menos un tiro: probabilidades originales, calibración isotónica y sigmoide
Diagrama de fiabilidad para realizar al menos un tiro: probabilidades originales frente a calibración isotónica y sigmoide. Cuanto más cerca de la diagonal, mayor concordancia entre probabilidad predicha y frecuencia observada. En este objetivo, el modelo original obtiene menor Brier y Log Loss que las dos alternativas.

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.
Clasificación de una liga con los participantes y El Chatarrero
Clasificación de la liga: los participantes humanos y El Chatarrero compiten con la misma economía virtual.

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:03
Demo completa del TFG. Juego con monedas virtuales, sin apuestas con dinero real.
Qué 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.