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 |
Ensemble calibrado
06_ensemble_calibrado
Qué hace
Reutiliza las features del 05, pero cambia el objetivo: no solo acertar ganador, sino que las probabilidades sean fiables por tramos.
Resumen de datos que usa
- Features completas del 05
- Partición train/calibración/test
- Calibración sigmoid/isotonic
- Métricas Brier, LogLoss, ROC AUC y ECE
Idea central
- Parte del 05, pero añade una capa explícita de calibración.
- Busca que una probabilidad del 70% gane cerca del 70% de las veces, no solo acertar más partidos.
- Es más útil para valor esperado y comparación con cuotas que para ranking bruto de acierto.
Particiones temporales
- Divide el histórico en entrenamiento, calibración y test respetando el orden temporal.
- En producción entrena con la parte antigua y calibra con la ventana más reciente.
- El backtest OOF usa folds crecientes: entrena con pasado, calibra con una ventana y prueba con futuro.
Candidatos calibrados
- HGB con calibración sigmoid.
- HGB con calibración isotonic.
- Regresión logística con calibración sigmoid.
- ExtraTrees con calibración sigmoid.
Métricas que importa mirar
- Accuracy al corte 0.5 para compararlo con el resto.
- Brier y LogLoss para calidad de probabilidad.
- Winner ECE para medir desajuste entre confianza y acierto real.
- Tramos de calibración 50-55, 55-60, etc. con probabilidad media y acierto real.
Riesgos de lectura
- Un modelo calibrado puede acertar algo menos, pero ser mejor para decidir apuestas con cuotas.
- Compararlo solo por porcentaje de acierto puede penalizar justo lo que intenta mejorar.
- Si la ventana de calibración es pequeña o cambia el mercado, las probabilidades pueden desplazarse.
Validación resumida
Backtest temporal walk-forward con folds y metricas OOF.
Salida resumida
Probabilidades mas aptas para comparar con cuotas y valor esperado.
Riesgo o lectura resumida
Puede sacrificar algo de acierto bruto para mejorar calibracion.
Tablas implicadas
- Todas las del 05
- porcentajes_victoria
Ficheros y responsabilidad
-
01_python/03_modelos/06_ensemble_calibrado/modeling.py
Candidatos, calibradores, particiones temporales y métricas. -
01_python/03_modelos/06_ensemble_calibrado/01_train.py
Entrena y guarda el modelo calibrado. -
01_python/03_modelos/06_ensemble_calibrado/03_backtest.py
Backtest walk-forward OOF. -
01_python/03_modelos/06_ensemble_calibrado/02_apply_future.py
Aplica el modelo calibrado a futuros.
Features técnicas del JSON de entrenamiento
Numéricas (106)
diff_eloabs_diff_elorest_localrest_visitantediff_restb2b_localb2b_visitanteplayers_player_known_count_localplayers_player_known_count_visitantediff_players_player_known_countplayers_player_roster_count_localplayers_player_roster_count_visitantediff_players_player_roster_countplayers_player_top8_minutes_localplayers_player_top8_minutes_visitantediff_players_player_top8_minutesplayers_player_top8_value_localplayers_player_top8_value_visitantediff_players_player_top8_valueplayers_player_top8_points_localplayers_player_top8_points_visitantediff_players_player_top8_pointsplayers_player_top8_reb_localplayers_player_top8_reb_visitantediff_players_player_top8_rebplayers_player_top8_ast_localplayers_player_top8_ast_visitantediff_players_player_top8_astplayers_player_top8_stocks_localplayers_player_top8_stocks_visitantediff_players_player_top8_stocksplayers_player_top8_tov_localplayers_player_top8_tov_visitantediff_players_player_top8_tovplayers_player_top8_ts_localplayers_player_top8_ts_visitantediff_players_player_top8_tsplayers_player_top8_efg_localplayers_player_top8_efg_visitantediff_players_player_top8_efgplayers_player_top8_usage_localplayers_player_top8_usage_visitantediff_players_player_top8_usageplayers_player_top8_net_localplayers_player_top8_net_visitantediff_players_player_top8_netplayers_player_top8_pm_localplayers_player_top8_pm_visitantediff_players_player_top8_pmplayers_player_top8_pie_localplayers_player_top8_pie_visitantediff_players_player_top8_pieplayers_player_depth_value_localplayers_player_depth_value_visitantediff_players_player_depth_valueplayers_player_depth_minutes_localplayers_player_depth_minutes_visitantediff_players_player_depth_minutesteam_win_rate_10_localteam_win_rate_10_visitantediff_team_win_rate_10team_margin_10_localteam_margin_10_visitantediff_team_margin_10team_points_for_10_localteam_points_for_10_visitantediff_team_points_for_10team_points_against_10_localteam_points_against_10_visitantediff_team_points_against_10team_team_fg_pct_10_localteam_team_fg_pct_10_visitantediff_team_team_fg_pct_10team_team_tp_pct_10_localteam_team_tp_pct_10_visitantediff_team_team_tp_pct_10team_team_ft_pct_10_localteam_team_ft_pct_10_visitantediff_team_team_ft_pct_10team_team_reb_10_localteam_team_reb_10_visitantediff_team_team_reb_10team_team_ast_10_localteam_team_ast_10_visitantediff_team_team_ast_10team_team_tov_10_localteam_team_tov_10_visitantediff_team_team_tov_10team_team_net_rating_10_localteam_team_net_rating_10_visitantediff_team_team_net_rating_10team_team_efg_10_localteam_team_efg_10_visitantediff_team_team_efg_10team_team_ts_10_localteam_team_ts_10_visitantediff_team_team_ts_10team_team_pace_10_localteam_team_pace_10_visitantediff_team_team_pace_10team_team_possessions_10_localteam_team_possessions_10_visitantediff_team_team_possessions_10team_team_pie_10_localteam_team_pie_10_visitantediff_team_team_pie_10
Categóricas (4)
tipo_partidoliga_idequipo_local_idequipo_visitante_id
Acierto
63,83%
Evaluables
11.976
Aciertos
7.644
Fallos
4.332
Cobertura histórica
74,96%
Cobertura útil
100,00%
Neutras 50/50
0
Sin pred. histórica
4.000
Omitidos OOF
4.000
Temporadas
21
Ligas
3
Periodo
03/12/2019 00:00
14/06/2026 00:30
14/06/2026 00:30
Última predicción
24/08/2026 08:33
Métricas de entrenamiento
Modelo JSON
06_ensemble_calibrado
Candidato seleccionado
hgb_sigmoid
Total dataset
15.976
Train
10.864
Calibración
1.917
Test
3.195
Nombre candidato
hgb_sigmoid
Accuracy test @0.5
66,17%
Mejor umbral test
0.53
Accuracy mejor umbral
66,32%
LogLoss test
0,6176
Brier test
0,2143
Winner ECE
0,0071
ROC AUC test
0,7061
Train producción
14.059
Calibración producción
1.917
Calibración desde
2025-06-11 04:00:00
Calibración hasta
2026-06-14 00:30:00
Walk-forward / OOF
Modelo OOF
06_ensemble_calibrado
Candidato OOF
hgb_sigmoid
Dataset total
15.976
Partidos backtest
11.976
Sin predicción OOF
4.000
Folds
10
Min train
3.000
Tamaño calibración
1.000
Tamaño fold
1.200
OOF accuracy @0.5
63,83%
OOF mejor umbral
0.5
OOF accuracy mejor umbral
63,83%
OOF Brier
0,2231
OOF LogLoss
0,6369
OOF Winner ECE
0,0104
OOF ROC AUC
0,6730