Sistema de predicción de marcadores de fútbol basado en Machine Learning, desarrollado con XGBoost y desplegado mediante Streamlit.
La aplicación utiliza información histórica de partidos internacionales para estimar:
- El marcador más probable.
- Los goles esperados de cada selección.
- La probabilidad de victoria local, empate y victoria visitante.
- Los diez marcadores más probables.
Este proyecto fue desarrollado con fines recreativos y de entretenimiento, aprovechando la fiebre mundialista generada por la Copa Mundial de la FIFA 2026.
La aplicación se encuentra disponible en:
No es necesario instalar nada. Basta con acceder desde cualquier navegador.
Para generar una predicción es necesario seleccionar:
- ⚽ Equipo local.
- ⚽ Equipo visitante.
- 📅 Fecha del partido.
- 🏆 Nivel de competición.
- 🌎 Si el encuentro se disputa en sede neutral.
Posteriormente, basta con presionar el botón:
Predecir marcador
La aplicación mostrará:
- ⚽ El marcador más probable.
- 📈 Los goles esperados de cada equipo.
- 🏆 Probabilidad de victoria local.
- 🤝 Probabilidad de empate.
- 🥅 Probabilidad de victoria visitante.
- 📊 Los diez marcadores más probables.
- 🔍 Variables utilizadas por el modelo.
La aplicación proporciona información como:
Marcador más probable
United States 2 - 1 Paraguay
Probabilidad del marcador: 9.84%
Goles esperados
United States: 1.93
Paraguay: 0.98
Probabilidades del resultado
Victoria Estados Unidos: 56.2%
Empate: 22.4%
Victoria Paraguay: 21.4%
El desarrollo del proyecto se realizó en cuatro etapas principales.
Se construyeron variables relacionadas con:
- Rendimiento reciente.
- Sistema Elo dinámico.
- Historial entre selecciones (Head-to-Head).
- Contexto competitivo.
📁 Documentación:
data_collection/README.MD
Se estudiaron:
- Distribución de los goles.
- Distribución de las puntuaciones Elo.
- Correlaciones entre variables.
- Variables con mayor relación con los goles anotados.
📁 Documentación:
EDA/README.MD
Se evaluaron diferentes conjuntos de variables con el objetivo de identificar aquellas con mayor capacidad predictiva.
📁 Documentación:
modelado/README.MD
Se seleccionó un subconjunto de variables y se optimizaron los hiperparámetros mediante búsqueda aleatoria y validación cruzada.
📁 Documentación:
modelo_final/README.MD
Se entrenaron dos modelos independientes mediante XGBoost Regressor:
- Modelo para goles del equipo local.
- Modelo para goles del equipo visitante.
Posteriormente, las predicciones de goles esperados son transformadas en probabilidades de marcadores utilizando una distribución de Poisson.
El modelo final emplea 17 variables agrupadas en cuatro categorías.
- Goles a favor.
- Goles en contra.
- Puntos obtenidos.
- Nivel promedio de competición.
- Elo del equipo local.
- Elo del equipo visitante.
- Diferencia Elo.
- Victorias del equipo local.
- Victorias del equipo visitante.
- Empates.
- Número total de enfrentamientos.
- Nivel competitivo.
- Sede neutral.
- La diferencia Elo constituye una de las variables más importantes del modelo.
- El rendimiento reciente aporta una gran capacidad predictiva.
- El historial entre equipos mejora ligeramente el desempeño.
- Un subconjunto reducido de variables produce resultados similares al modelo completo.
- La predicción exacta del marcador es considerablemente más difícil que la predicción del resultado del partido.
- La fortaleza defensiva del rival resulta más influyente que la capacidad ofensiva propia.
- Python
- Pandas
- NumPy
- Scikit-Learn
- XGBoost
- SciPy
- Joblib
- Streamlit
streamlit
pandas
numpy
scikit-learn
xgboost
joblib
scipy
Los resultados históricos de partidos internacionales utilizados en este proyecto fueron obtenidos del conjunto de datos:
International football results from 1872 to 2017
Disponible en Kaggle:
https://www.kaggle.com/datasets/martj42/international-football-results-from-1872-to-2017
Posteriormente, el conjunto de datos fue complementado con resultados más recientes hasta junio de 2026 con el objetivo de disponer de información actualizada para la Copa Mundial de la FIFA 2026.
Mart Jürisoo. International football results from 1872 to 2017. Kaggle.
---
# ⚠️ Aviso
Las predicciones generadas por el sistema representan estimaciones estadísticas obtenidas a partir de información histórica y no garantizan el resultado real de los encuentros.
El fútbol es un deporte con una elevada incertidumbre inherente, por lo que los resultados mostrados deben interpretarse únicamente con fines recreativos y de entretenimiento.