FootballEdge
Motor de predicción de fútbol con modelo estadístico propio y validación histórica antes de confiar en él.
2
estrategias sobrevivieron
1
torneo simulado completo
Poisson
modelo base
Predecir resultados de fútbol es fácil; saber si tu predicción vale algo es lo difícil. Cualquier modelo parece brillante mirando hacia atrás. Hacía falta un sistema que no solo generara pronósticos sino que probara, contra temporadas completas ya jugadas, si el modelo realmente aporta algo o solo describe el pasado.
Motor en Python que modela los goles de cada equipo con una distribución de Poisson calibrada por fuerza ofensiva y defensiva, calcula probabilidades para cada mercado y las contrasta con las cuotas disponibles. Sobre eso, un simulador de torneo completo y un módulo de backtesting que reproduce temporadas históricas partido a partido.
Ninguna estrategia se da por buena sin pasar el backtest. El modelo se calibra con datos anteriores al periodo evaluado y se prueba sobre datos que nunca vio, para no engañarse a sí mismo. La recolección de datos usa automatización de navegador, porque las fuentes públicas confiables no siempre exponen una API.
El backtest descartó la mayoría de las combinaciones y dejó solo un par realmente rentables. Ese resultado negativo es el valor del proyecto: el sistema sabe decir "esto no funciona", que es exactamente lo que un modelo mal construido nunca dice.
Cómo se ve por dentro
Ejemplos ilustrativos de los patrones aplicados, con la razón de cada decisión.
Probabilidad de cada marcador, no solo del ganador
def matriz_marcadores(lambda_local, lambda_visitante, max_goles=8):
"""Probabilidad conjunta de cada marcador bajo Poisson independiente."""
local = poisson.pmf(np.arange(max_goles + 1), lambda_local)
visitante = poisson.pmf(np.arange(max_goles + 1), lambda_visitante)
return np.outer(local, visitante)
matriz = matriz_marcadores(lam_local, lam_visitante)
p_local = np.tril(matriz, -1).sum() # gana local
p_empate = np.trace(matriz) # empate
p_visitante = np.triu(matriz, 1).sum()La matriz de Poisson da la probabilidad de cada marcador exacto. De ahí salen todos los mercados por suma, en lugar de modelar cada mercado por separado y arriesgarse a que se contradigan entre sí.
Ejemplo ilustrativo del patrón aplicado; no es código de ningún producto.Stack del proyecto
¿Necesitas algo parecido?
Cuéntame tu caso y te digo con franqueza si es viable y cuánto toma.
Hablemos