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 LIQUIDADAS2595meta inicial: 100
ACCURACY49.6%fuera de muestra
BRIER SCORE0.235menor es mejor
ERROR DE CALIBRACIÓN1.5%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 Gabriel MorenoAZ vs San Francisco Giants · experimental
62.3%
#2 Alejandro KirkTOR vs Kansas City Royals · experimental
61.8%
#3 Mookie BettsLAD vs Atlanta Braves · experimental
61.5%
#4 Bryce EldridgeSF vs Arizona Diamondbacks · experimental
61.3%
#5 Shohei OhtaniLAD vs Atlanta Braves · provisional
61.2%
#6 Jackson ChourioMIL vs New York Mets · experimental
61.0%
#7 Trent GrishamNYY vs Houston Astros · experimental
60.9%
#8 Corbin CarrollAZ vs San Francisco Giants · experimental
60.8%
#9 Freddie FreemanLAD vs Atlanta Braves · experimental
60.8%
#10 Bobby Witt Jr.KC vs Toronto Blue Jays · experimental
60.8%
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-08-2679571 filas · 15 juegos cerrados · 314 jugadores27c9dab4c3462fdf
CANDIDATO · LOG LOSS0.6663
CHAMPION · LOG LOSS0.6617
CANDIDATO · BRIER0.2367
CHAMPION · BRIER0.2344

Decisión: rejected:log_loss_baseline_margin,brier_baseline_margin,roc_auc_at_least_052,top10_stable_across_windows,beats_champion_log_loss,beats_champion_brier

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.