Documentación de modelos
Ficha de modelos predictivos
Qué hace cada modelo, qué datos usa y cómo interpretar sus métricas.
Modelos registrados
9
9 con datos en la tabla
Predicciones evaluables
107.017
115.784 registros historicos ·
15.976 partidos base
Mejor acierto
Ensemble selectivo
76,77%
Última predicción
24/08/2026 08:51
Según `porcentajes_victoria.calculado_en`
Tabla general
9 modelos registrados. Pulsa un modelo para abrir su ficha técnica y sus datos actuales.
Todos
Vista general
01
Elo básico
02
Reg. logística + Elo
03
Naive Bayes + Elo
04
Naive Bayes + stats
05
Ensemble jugadores
06
Ensemble calibrado
07
Ensemble selectivo
08
Comité especialistas
09
Modelo margen
| Modelo | Tipo | Objetivo | Evaluables | Cobertura | Acierto | Última | |
|---|---|---|---|---|---|---|---|
| Elo básico 01_elo_basico | Elo | Crear una probabilidad base usando fuerza historica de equipos. | 15.927 49 neutras | 100,00% útil 99,69% | 62,55% | 24/08/2026 08:26 | Ver |
| Reg. logística + Elo 02_regresion_logistica_elo | Regresión logística | Mejorar Elo aprendiendo pesos estadisticos sobre variables dinamicas. | 12.976 3.000 sin pred. histórica | 81,22% útil 100,00% | 63,98% | 24/08/2026 08:26 | Ver |
| Naive Bayes + Elo 03_naive_bayes_elo | Naive Bayes | Probar un clasificador probabilistico simple con señales Elo. | 12.976 3.000 sin pred. histórica | 81,22% útil 100,00% | 62,48% | 24/08/2026 08:26 | Ver |
| Naive Bayes + stats 04_naive_bayes_stats | Naive Bayes + stats | Añadir estadisticas recientes de equipo al enfoque Naive Bayes. | 12.976 3.000 sin pred. histórica | 81,22% útil 100,00% | 62,57% | 24/08/2026 08:26 | Ver |
| Ensemble jugadores 05_ensemble_jugadores | Ensemble | Combinar Elo, forma de equipo y perfiles rolling de jugadores. | 12.975 1 neutras 3.000 sin pred. histórica | 81,22% útil 99,99% | 63,53% | 24/08/2026 08:29 | Ver |
| Ensemble calibrado 06_ensemble_calibrado | Ensemble calibrado | Mejorar la calibracion de probabilidades del ensemble. | 11.976 4.000 sin pred. histórica | 74,96% útil 100,00% | 63,83% | 24/08/2026 08:33 | Ver |
| Ensemble selectivo 07_ensemble_selectivo | Ensemble selectivo | Subir el porcentaje de acierto seleccionando solo predicciones de alta confianza. | 3.259 8.717 neutras 4.000 sin pred. histórica | 74,96% útil 27,21% | 76,77% | 24/08/2026 08:39 | Ver |
| Comité especialistas 08_comite_especialistas | Comité de especialistas | Mejorar el acierto usando un experto distinto según el tipo de partido. | 11.976 4.000 sin pred. histórica | 74,96% útil 100,00% | 63,37% | 24/08/2026 08:48 | Ver |
| Modelo margen 09_modelo_margen_puntos | Modelo de margen | Predecir diferencia de puntos y convertirla en probabilidad de victoria. | 11.976 4.000 sin pred. histórica | 74,96% útil 100,00% | 65,03% | 24/08/2026 08:51 | Ver |
Reg. logística + Elo
02_regresion_logistica_elo
Qué hace
Entrena una regresión logística sobre señales cronológicas sencillas: diferencia Elo, magnitud de la diferencia y racha reciente de ambos equipos.
Resumen de datos que usa
- Diferencia Elo
- Valor absoluto de la diferencia Elo
- Racha local últimos 5
- Racha visitante últimos 5
- Tipo de partido
Idea central
- Mantiene la base Elo, pero deja que una regresión logística aprenda cuánto pesa cada señal.
- La salida es una probabilidad local entre 0 y 1, no solo una clase gana/pierde.
- Es más interpretable que un ensemble porque las variables son pocas y claras.
Features construidas
diff_elo: Elo local menos Elo visitante antes del partido.abs_diff_elo: tamaño de la diferencia, independientemente del lado.racha_local_5yracha_visitante_5: porcentaje de victorias en los 5 partidos previos de cada equipo.diff_racha_5: forma reciente local menos visitante.tipo_partido: variable categórica codificada con one-hot.
Entrenamiento
- Usa
SimpleImputerpara numéricas y categóricas. - Codifica
tipo_partidoconOneHotEncoder(handle_unknown=ignore). - Prueba varios valores de regularización
C: 0.1, 0.3, 1.0, 3.0 y 10.0. - Guarda el mejor pipeline en
models/lr_elo.pkl.
Backtest y aplicación
03_backtest_build_prediction.pyrecorre partidos pasados con el modelo entrenado y escribe probabilidades.02_apply_future.pyaplica el pipeline a partidos futuros con Elo disponible.- El modelo se etiqueta en base de datos como
02_regresion_logistica_elo.
Riesgos de lectura
- La racha se actualiza después de cada partido; si se alterase ese orden se contaminaría.
- No sabe nada de bajas, rotaciones, cuotas ni calendario salvo lo reflejado indirectamente en Elo/racha.
- Al tener pocas variables, suele ser estable pero puede quedarse corto en partidos con contexto especial.
Validación resumida
Split temporal 80/20 en entrenamiento y script de backtest que escribe predicciones históricas.
Salida resumida
Probabilidades calibrables y faciles de interpretar.
Riesgo o lectura resumida
Si alguna variable dinamica se calcula con datos del propio partido puede contaminarse; conviene auditar cada feature nueva.
Tablas implicadas
- partidos
- equipo_elo
- porcentajes_victoria
Ficheros y responsabilidad
-
01_python/03_modelos/02_regresion_logistica_elo/01_train.py
Entrena el pipeline y guarda métricas JSON. -
01_python/03_modelos/02_regresion_logistica_elo/03_backtest_build_prediction.py
Genera predicciones históricas. -
01_python/03_modelos/02_regresion_logistica_elo/02_apply_future.py
Calcula predicciones futuras.
Features técnicas del JSON de entrenamiento
Numéricas (5)
diff_eloabs_diff_eloracha_local_5racha_visitante_5diff_racha_5
Categóricas (1)
tipo_partido
Acierto
63,98%
Evaluables
12.976
Aciertos
8.302
Fallos
4.674
Cobertura histórica
81,22%
Cobertura útil
100,00%
Neutras 50/50
0
Sin pred. histórica
3.000
Temporadas
24
Ligas
3
Periodo
24/02/2019 20:30
14/06/2026 00:30
14/06/2026 00:30
Última predicción
24/08/2026 08:26
Métricas de entrenamiento
Modelo JSON
02_regresion_logistica_elo
Total dataset
15.976
Train
12.780
Test
3.196
Mejor C
1
Accuracy test @0.5
65,49%
Mejor umbral test
0.52
Accuracy mejor umbral
65,77%
LogLoss test
0,6226
Brier test
0,2165
ROC AUC test
—