Bélgica ganará el Mundial de Qatar de acuerdo a un modelo predictivo

Intro

Ya no es novedad que al fútbol me apasiona y la inteligencia artificial también. Era obvio que viniéndose el mundial iba a intentar poner la máquina a trabajar para ver qué selección tiene más chances de ser el próximo ganador.

Si bien ya había realizado un experimento para las eliminatorias en este caso el enfoque debería ser distinto. Para las eliminatorias enfoqué el problema como uno de simulación, tomando como base para samplear los partidos que ya se habían jugado entre esas dos selecciones (ej.: resultados entre Uruguay y Paraguay en Asunción). Para el caso del mundial no era tan sencillo porque no hay tantos antecedentes de choques entre las mismas selecciones.

Modelado de datos

Por esto fui por un enfoque más de machine learning tradicional, buscar algún mecanismo de codificar (generar un embedding) de cada selección, del partido en sí y a partir de eso entrenar con un histórico de todos los partidos de fútbol internacional que se jugadores desde 1872.

A esta información, poder llevar a cada selección a una representación vectorial, utilicé los datos del ranking FIFA. Para transformar a una selección a una lista de números en un momento dado utilicé:

  • los puntos que tenía a esa fecha,
  • la posición,
  • si había mejorado o empeorado con respecto a la medición anterior,
  • el promedio, máximo, mínimo y desviación estándar de puntos:
    • del último año,
    • de los últimos dos años y
    • de los últimos tres años,
  • Cómo le fue en los últimos 5 partidos (ganó, perdió, empató)
  • Confederación
  • Si en ese momento era el actual campeón del mundo (por aquello de la maldición del campeón)

La ventaja de transformar a las selecciones de esta manera es que ya no importa los equipos que están compitiendo en si mismo, para el algoritmo pasan a ser dos vectores.

El problema se podría haber encarado de distintas maneras, para mi objetivo no era necesario predecir exactamente los goles de uno y otro cuadro por lo que en realidad lo enfoqué como un problema de clasificación binaria donde el algoritmo intenta predecir si va a ganar el equipo “local”. Luego en realidad le pido al algoritmo que prediga si eso sucederá y si la probabilidad se encuentra dentro de una ventana alrededor del 50% doy empate entre los equipos.

Una curiosidad es que el algoritmo detectó que el local corre con más suerte que el visitante. Por ejemplo, al pedirle la probabilidad de que Bolivia le gane a Uruguay da (por ejemplo) 75%, sin embargo, si le pedimos la probabilidad de que Uruguay le gane a Bolivia da 95%.

Como verán estas probabilidades no suman 1 cosa que es bastante loca pero después de que uno lo piensa hace sentido.

Como en el mundial el peso de la localía no es tal tuve que adaptar el modelo para que “promedie y escale” las probabilidades que van para un lado y para el otro.

Modelos y evaluación con mundial de Rusia

Entrené varios modelos LogisticRegression, KNeighborsClassifier, DecisionTreeClassifier, LinearSVC, GaussianNB, RandomForestClassifier y GradientBoostingClassifier. El que mejor performó fue este último.

Luego del tuneo de hiperparámetros venía la prueba de fuego, probar el modelo con el mundial de Rusia para tener una idea clara de qué tan bueno es el modelo para predecir partidos del mundial. En este caso el modelo acertó 78.12% de los marcadores finales (50 partidos en 64).

Este resultado es bastante bueno, comparado contra un modelo totalmente bobo que sea lo que sea siempre repita que ganará el visitante acertaría 26 de 64 partidos, es decir, un 40.63%.

Además, hay que sumarle que en ese mundial se dieron resultados bastante poco probables:

Predicciones mundial Qatar

Una vez entrenado, el modelo es capaz de arrojar la probabilidad de cualquier partido. Para la fase de grupos el escenario es el siguiente: Uruguay tiene un 76% de probabilidades de ganarle a Corea y un 79% para vencer a Ghana; y, por el contrario, Portugal tiene 64% de probabilidades de ganarle a Uruguay. Veamos las probabilidades de todos los partidos de la fase de grupos del mundial:

De esa forma, lo más probable es que clasifiquemos segundos en el grupo porque ganamos dos y perdemos uno y nos cruzaríamos con Brasil (que gana los tres partidos de su grupo). Veamos entonces qué pasa en octavos, cuartos, semi-final y final:

Como vemos, Brasil nos ganaría y quedaríamos afuera del mundial. La probabilidad de victoria de Brasil sobre Uruguay es del 79%.

Para no quedar así de tristes y siendo que tenía un modelo capaz de tirar la probabilidad de cualquier partido posible simulé jugar el mundial 10.000 veces, a ver si Uruguay tenía alguna remota chance de salir campeón.

Simulaciones

Luego de tirar las 10.000 simulaciones Bélgica salió campeón 1.628 veces. Le siguen: Brasil, Argentina, Francia, Inglaterra, España, Holanda, Portugal, Dinamarca, Alemania, México, EE.UU. y Uruguay. De las 10 mil veces, 88 gana Uruguay; es menos del 1%. Difícil, pero no imposible.

De los 32 equipos que disputarán el torneo, Uruguay es el decimotercer país con más chances de ganarlo. 

Análisis del Grupo de Uruguay

Si nos enfocamos en la fase de grupos, Uruguay podría terminar con cualquier cantidad de puntos entre 0 y 9, menos 8, es totalmente imposible que Uruguay termine con 8, ajajjaja.

Vemos que lo más probable es que Uruguay termine con 6 puntos, algo que no sorprende. Lo que si es bastante motivante es que lo segundo más probable es que terminemos con 9 puntos!

Esto si lo traducimos en qué posición vamos a terminar en el grupo vemos que cerca de un 40% de que terminemos primeros, un poco más de un 45% de terminar segundos, cerca de un 10% de terminar terceros y menos de un 5% de terminar cuartos.

Sumando las probabilidades de terminar primeros o segundos vemos que la probabilidad de que Uruguay clasifique es de más de un 80%

O sea que pasando línea podemos decir que el primer puesto del grupo será para Portugal 55.72%, Uruguay 39.05%, 4.51% Korea y 0.72% Ghana

Lo mejor que nos puede pasar

Como dato de color, en una de las corridas Uruguay pasó a octavos con solo 2 puntos! Cómo es eso posible?

Si Portugal le gana a todos (a Uruguay con poca diferencia y a Korea y a Ghana le llenan la canasta) y el resto de los partidos terminan en empate podríamos pasar con solo dos puntitos!!!

Octavos de final

Todo indicaría que vamos a pasar la fase de grupos, con quiénes nos cruzaríamos?

Lo más probable es que nos crucemos con Brasil 47%, Suiza 28%, Serbia 6% y Camerún 5%.

Lo más probable es que en octavos perdamos 64% de chances!

Pero si por esas cosas no nos cruzamos con Brasil nuestras chances de pasar a cuartos aumentan a 59.50%

Análisis Recorrido de Uruguay

Entonces, sabiendo que lo más probable es que Uruguay se quede en octavos, cuáles son las probabilidades de que llegue a cada una de las fases?

Como ya habíamos visto lo más probable es que nos vayamos en octavos 54.68%, cuartos 20.19%, Grupo 14.72%, Semi 6.99%, vice-campeón 2.54%, campeón 0.88%.

En el caso de llegar a la final (3.42%) quién sería nuestro adversario?

Datos de Color

Camino más fácil

De las 10.000 simulaciones hubo un recorrido que nos tocó realmente fácil! Suiza, Japón, Senegal y USA

Camino más difícil

De las 10.000 simulaciones hubo un recorrido que nos tocó realmente complicado pero que de todas formas terminamos coronándonos campeón! Brasil, España, Argentina, Francia.

Resumen

Está bastante brava para la celeste pero la esperanza es lo último que se pierde, vamos por ese 0.8% de chances de salir campeones!!!

Penca

Inspirados en esta idea decidimos preparar el lanzamiento de una penca especial en la que podrán participar profesionales y estudiantes de data science armando su propio modelo de predicción automático sobre el Mundial de Qatar y, una vez finalizado el torneo, ganará aquel que haya sido más certero.

Héctor Cotelo
Consultor Data & Analytics