ERNESTO—SOFTWARE.
EN ES
01.04 Trabajos Producto propio · datos deportivos Remoto
← Trabajos

Un modelo de predicción que publica los 618 juegos que le dijo que no jugara

Construí el modelo, la aplicación que lo rodea y el pipeline que lo alimenta. Tres personas pagan por él. Lo que le mostraría a otro ingeniero no está en la página de precios: es el banco que mide un modelo en sombra contra el que está en producción, juego por juego.

DailyMoneyball
Fig. 01. El tablero, con el conteo de alto, medio, bajo y descarte del día Django · PostgreSQL · Svelte · htmx · Cloudflare

La ficha

Rubro
Producto propio · datos deportivos
Dónde
Remoto
Rol
Único ingeniero
Hecho con
Django · PostgreSQL · Svelte · htmx · Cloudflare
Lectura
5 min de lectura
Resultado
64% de acierto en el tier alto
Estado
Activo

I El problema

Todo el mundo publica lo que ganó

Una captura de un boleto ganador no dice nada de los que perdieron. Las 1,882 selecciones están en el tablero. Completo, o no es registro.

Nadie le dice cuándo quedarse quieto

Un servicio que necesita que usted juegue todos los días no puede permitirse un tier de descarte. Este lo tiene. Marca los juegos que no quería jugar, y hay 618 en el tablero, calificados igual que el resto.

Selecciones publicadas antes de que cierren las alineaciones

Una selección hecha antes de confirmar al abridor es una corazonada con un número encima. Cada selección aquí espera alineaciones y abridores confirmados. Salir temprano vale menos que salir bien.

Una racha no es un modelo

Una quincena con suerte se ve igual que un modelo mejor. Pregúntele al v8. Cada selección que hace lleva número de versión y fecha, y sin esos dos campos nadie puede decir si el v9 mejoró algo o simplemente tuvo una buena semana.

II La solución

Modelo en sombra medido contra el de producción, consultable por selección
Fig. 03. Modelo en sombra medido contra el de producción, consultable por selección
02

Modelo en sombra medido contra el de producción, consultable por selección

El Strategy Lab filtra las selecciones ya cerradas por mercado, tier, confianza, momio, lado, resultado, fecha y equipo. El filtro de motor tiene cuatro posiciones: v8 en producción, v9 en sombra, los juegos donde coinciden y los juegos donde se separan. Una versión nueva corre contra jornadas reales antes de que se le permita elegir nada. Después se gana el puesto.

Tiers de confianza con una clase de descarte explícita
Fig. 02.
01

Tiers de confianza con una clase de descarte explícita

Cada selección cae en uno de cuatro tiers y el modelo tiene permiso de decir que no se juegue. El tier alto va 64.2% en 299 juegos. El descarte va 47.6% en 618. Los dos están en la portada con su conteo de juegos al lado. Revise la escalera en vez de creerla.

Calibración leída por tier y no por el acierto de portada
Fig. 04.
03

Calibración leída por tier y no por el acierto de portada

El acierto por confianza va 74.2% en las jugadas de unidad, y de ahí 64.2%, 62.3%, 55.5% y 47.6% hasta el descarte. La escalera es monótona. Eso es lo que hace que un número de confianza valga la pena imprimirlo, y los conteos de juegos al lado de cada fila son 62, 299, 477, 488 y 618.

Registros diarios publicados por tier desde el día uno
Fig. 05.
04

Registros diarios publicados por tier desde el día uno

La página de temporada lleva una fila por día, separada en alto, medio, bajo y descarte, hasta el 1 de mayo. El total de temporada da 53.5% en 1,418 juegos con una mejor racha de 12. Cada selección se escribe en el momento en que se hace. Ninguna se edita después.

Registro por club con ROI a apuesta plana
Fig. 06.
05

Registro por club con ROI a apuesta plana

Team Performance ordena cada club por cómo le fue al modelo en los juegos donde lo respaldó. Philadelphia va 49-18 en 87 juegos con +17.6% de ROI. Arizona va 34-20 con +21.4%. Diez respaldos es el piso.

Motores versionados, de v8 a v9, con historial de cambios público
Fig. 07.
06

Motores versionados, de v8 a v9, con historial de cambios público

Cada mercado tiene una meta de 67% en sus selecciones de mayor confianza, y el mercado que quede por debajo entra a la cola de reconstrucción. El changelog le pone fecha a cada una: un motor de moneyline v9 en preview, el modelo del Mundial reconstruido a v2, el over/under reconstruido a v4. El seguimiento de línea de cierre también está ahí. No sobrevivió. Se construyó, se corrió, y se sacó cuando resultó que no decía nada útil sobre béisbol.

Post-mortems sobre el 1.66% que el modelo le pierde a la línea de cierre
Fig. 08.
07

Post-mortems sobre el 1.66% que el modelo le pierde a la línea de cierre

Los reportes son piezas largas sobre lo que el registro dice de verdad, publicadas sin importar si la respuesta favorece al modelo. Uno se titula Por qué le perdemos a la línea de cierre. La pérdida promedio es 1.66%. Otro mide dónde aparece la ventaja en las primeras cinco entradas.

III El resultado

1,882
Selecciones registradas
1,418
Juegos calificados
64%
Acierto en tier alto

Si tiene un modelo en producción y ninguna forma de saber si el v2 le gana al v1, es la misma construcción.

Con gusto se lo explico pantalla por pantalla, en el orden en que se construyó.