Metodología

Software de última generación para predecir resultados de fútbol y diferentes análisis rentables, basado en técnicas de Machine Learning.

Software de última generación para predecir resultados de fútbol y diferentes análisis rentables, basado en técnicas de Machine Learning.

1. Machine Learning

Para empezar, el modelo de predicción utilizado como parte del sistema construido por los usuarios, hace uso de un modelo clasificador Random Forest (probablemente se añadirán más algoritmos en el futuro). Para entrenar y probar dicho modelo, se utiliza una matriz de datos (construida a partir de las selecciones del usuario), que se asemeja mucho a la presentada en la foto 1. La tabla incluye el conjunto de datos de todas los partidos seleccionados por los usuarios en orden cronológico. La columna TARGET es el resultado del partido que queremos predecir. Las columnas de parámetros de estadística (FEATURED STATISTICS) incluyen los valores estadísticos de cada uno de los equipos en relación con los partidos anteriores en un número seleccionado por el usuario en el menú de la izquierda cuando construimos un sistema. Las columnas de las cuotas de mercado (FEATURED ODDS) son las cuotas de los partidos anteriores en el mercado seleccionado por el usuario..

Foto 1: Matriz de datos para entrenamiento y test

Tras crear una división de entrenamiento/prueba en una proporción de 70/30, el modelo se entrena utilizando partidos del conjunto de entrenamiento, mientras que el conjunto de prueba o test se mantiene para fines de prueba o simulación. Para las pruebas, aunque la primera impresion podría ser simplemente utilizar el modelo previamente entrenado para hacer predicciones y juzgarlas en función de los resultados, Futbolbrain utiliza un enfoque mejor que se asemeja más al funcionamiento del modelo en el día a día. Así, hemos creado un plan de entrenamiento “progresivo”, en el que el conjunto de pruebas se divide en numerosos bloques (que representan semanas) para los que tiene lugar un proceso iterativo en el que en cada paso se añade un bloque al conjunto de entrenamiento, se vuelve a entrenar el modelo y se utiliza el siguiente bloque para la predicción. El proceso se repite hasta que no quedan bloques por probar, respetando los requisitos temporales del problema en cuestión. El proceso de entrenamiento “progresivo” se ilustra en la foto 2.

Foto 2: Proceso de entrenamiento progresivo

2. Datos desequilibrados

Otro punto fuerte de nuestra metodología se refiere a los datos desequilibrados. En concreto, algunos resultados de los mercados se producen con menos frecuencia que otros (por ejemplo, menos de 0,5 goles en una temporada de liga sucede menos del 10% de las ocasiones), lo que genera que ciertos resultados sólo se den en una pequeña parte de las muestras y, por tanto, no constituyen ejemplos representativos del problema. Lo primero puede dar lugar a una modelización deficiente y deteriorar gravemente el rendimiento de nuestro modelo predictor. Por ello, se utilizan técnicas de remuestreo. En concreto, cuando se detecta que los conjuntos de datos están desequilibrados -más allá de un grado tolerado- se aplican funciones SMOTE para volver a muestrear los datos creando muestras sintéticas de los ejemplos más infrecuentes. De este modo se obtienen mejores resultados, al modelizar mejor los casos “difíciles” en los que simplemente no se dispone de datos suficientes.

3. Ajuste detallado

Dado que los enfoques de Machine Learning tratan de modelizar mejor los problemas a partir de una cantidad limitada de muestras y características, es importante ajustar los hiperparámetros en función del algoritmo utilizado. Para ello, la última función de la plataforma permite el uso de técnicas de ajuste detallado, cuyo objetivo es encontrar las combinaciones de hiperparámetros más eficaces. Aunque se trata de un trabajo en curso, los primeros resultados muestran mejoras prometedoras respecto al comportamiento por defecto, con predicciones más precisas que, a su vez, se traducen en una mayor rentabilidad para los sistemas que las emplean.