MACHINE LEARNING APLICADO A MLB

Del dato a una señal auditable.

Sport Cortex estima la probabilidad de que un bateador consiga al menos un hit. Separa forma, contexto, mercado y resultado para poder medir cada decisión.
PREDICCIONES LIQUIDADAS4656meta inicial: 100
ACCURACY52.7%fuera de muestra
BRIER SCORE0.234menor es mejor
ERROR DE CALIBRACIÓN—candidato temporal
GRÁFICA EN VIVO

Top contextual de hoy

Ordenado de mayor a menor. La barra compara la probabilidad base del bateador con la estimación después de incorporar al pitcher.

#1 Fernando Tatis Jr.SD vs Milwaukee Brewers · approved
63.2%
#2 Jackson ChourioMIL vs San Diego Padres · provisional
61.7%
#3 Christian YelichMIL vs San Diego Padres · pending
61.5%
#4 Jake CronenworthSD vs Milwaukee Brewers · experimental
61.3%
#5 Jackson MerrillSD vs Milwaukee Brewers · experimental
60.9%
#6 Brice TurangMIL vs San Diego Padres · pending
60.5%
#7 William ContrerasMIL vs San Diego Padres · pending
60.3%
#8 Ty FranceSD vs Milwaukee Brewers · experimental
60.2%
#9 Xander BogaertsSD vs Milwaukee Brewers · experimental
59.3%
#10 Jake BauersMIL vs San Diego Padres · approved
55.6%
FLUJO DE PRODUCCIÓN

Cómo funciona

01 · INGESTA

MLB Stats API, rosters, lineups, boxscores y Statcast.

02 · FEATURES

Forma reciente, histórico, mano, velocidad, zona, arsenal, whiff, hard-hit y orden al bate.

03 · ENTRENAMIENTO

Regresión logística con división temporal. El modelo diario se congela para evitar fuga de información.

04 · MATCHUP

Una cola independiente recalcula cada bateador confirmado contra el pitcher probable.

05 · CALIBRACIÓN

La probabilidad estimada se compara con la frecuencia observada para detectar exceso de confianza.

06 · AUDITORÍA

La predicción se bloquea antes del juego y se liquida con el resultado oficial.

CHAMPION / CHALLENGER

Entrenamiento diario controlado

El dataset se cierra una vez, se identifica con hash y el candidato solo reemplaza al champion si mejora Brier y log loss, además de superar las reglas base.

rejectedCorte 2026-10-054655 filas · 0 juegos cerrados · 0 jugadoressin snapshot
CANDIDATO · LOG LOSS0.6977
CHAMPION · LOG LOSS0.6973
CANDIDATO · BRIER0.2522
CHAMPION · BRIER0.2520

Decisión: rejected:beats_v5_log_loss,beats_v5_brier,improves_discrimination,top5_not_worse,stable_daily_brier,minimum_test_rows

NÚCLEO DEL MODELO

¿Cómo convierte datos en una probabilidad?

La regresión logística aprende un peso para cada variable. Primero combina las features en un score lineal z; después la función sigmoide transforma ese score en un valor entre 0 y 1.

z = β₀ + Σ βᵢxᵢP(hit) = σ(z) = 1 / (1 + e⁻ᶻ)
EJEMPLO DIDÁCTICO

El vector de hoy puede incluir histórico 0.71, forma reciente 0.60, mano, parque y matchup. Si el pipeline produce z = 0.62, entonces:

σ(0.62) = 0.650 → 65.0%

Los coeficientes reales no se eligen manualmente: se aprenden únicamente con datos anteriores al juego.

X_today = feature_pipeline.transform(today)
p_hit = champion.predict_proba(X_today)[:, 1]
Animación futurista del pipeline de Sport Cortex, desde la recolección de datos MLB hasta una predicción con regresión logística
Fuentes MLB → calidad de datos → features → regresión logística → predicción auditable.
Descargar GIF para presentación
¿SE ENTRENA CONSTANTEMENTE?

No se modifica después de cada turno al bate. Al cerrar la jornada se crea una fotografía reproducible con fecha de corte y hash; con ella se entrena un solo candidato usando una división temporal, donde el futuro nunca entra al entrenamiento.

El candidato se compara contra un baseline y contra el champion vigente mediante Brier score, log loss, calibración y estabilidad. Si no mejora los criterios definidos, se registra la ejecución pero el modelo productivo permanece intacto. Solo un candidato aprobado se promociona para la siguiente jornada.

Muestra suficiente para evaluación inicial; ROI aún requiere cuotas históricas.