Presentaba a finales de la semana pasada INYESTA, un proyecto de investigación en el que he estado envuelto estos últimos cuatro meses junto con Pablo C. Cañizares y Frantzdy Louis, dirigido por los doctores Juan Luis Pavón Mestras (ES) y Francisco Garijo (ES) de la UCM, con el fin de encontrar una solución donde aplicar tecnología de sistemas multiagentes e inteligencia al mundo de las apuestas deportivas.


inyesta

El resultado final lo podéis ver en el repositorio de GitHub (EN), aunque ya adelanto que está sin terminar. Sin embargo, sí nos ha permitido pelearnos con los entresijos de una arquitectura de software multiagente, en la que, una vez salvados los obstáculos iniciales, cuenta con un esqueleto lo suficientemente modular como para que la escalabilidad no sea un gran problema.

Utilizamos para ello el framework Ícaro (ES), desarrollado por uno de los docentes, y que permite de base la abstracción lógica para el trabajo con agentes, así como su tratamiento mediante reglas. La foto resultante es un sistema en el que cada pieza funciona por separado, esperando un input que la lance y devolviendo el output oportuno, de tal manera que modificar el código de uno de los agentes (por ejemplo, un recomendador de alto riesgo) no debería afectar al funcionamiento del resto del sistema.

Como problemas a los que nos hemos tenido que enfrentar, estaba el hecho de no contar con una estructura de información inicial en la que basarnos. El tener que usar técnicas de data mining para sustraer datos colgados en la red acabó por robar más tiempo del esperado.

Las apuestas deportivas tienen, como ya hablamos con anterioridad, un componente de aleatoriedad realmente alto (frente a la comparativa con sistemas bursátiles dependientes de un mercado fuertemente regulado), por lo que a priori la mejor opción para minimizar el fracaso es basarse en el colectivo de apuestas de diferentes portales.

El primer objetivo es claro: mejorar el porcentaje de acierto de un agente aleatorio (el que devuelve aleatoriamente gana el equipo anfitrión, pierde o empatan), y para ello aplicamos principios de análisis de big data, estableciendo diferentes niveles de responsabilidad a cada agente dependiendo de su tasa de éxito.

Pasado este trámite, la siguiente muralla a salvar es la del mejorar la tasa de acierto de los clientes de una casa de apuesta (muchos pocos son mejor que pocos muchos). La mejor manera de llevarlo a cabo es aplicar el mineo en aquellos resultados más probables (que son los que menor índice de ganancias arrojan) y compararlos con la respuesta de tu sistema.


De estos dos puntos deberíamos obtener un patrón de compromiso para cada agente, de cara a dotar de mayor o menor valor a cada uno, y por tanto, obtener una previsión final lo más acercada posible al resultado real.

Por supuesto, lo óptimo sería establecer además patrones en el mundo físico, como apunta SAP en el vídeo embebido a continuación, con su nueva tecnología de ‘análisis de Big Data’ para partidos de fútbol, que aúnan en un mismo servicio la sensorización de cada jugador, el conocimiento previo del historial de los dos equipos, la inteligencia aplicada a posibles tácticas y estrategias en el campo y monitorización en tiempo real.

Una verdadera pasada, que queda a años luz de lo que tres “mindundis” pueden hacer en cuatro meses.

INYESTA (EN) está liberado bajo licencia GNU GPL v3 (EN), y como ya os comenté, falta aún bastante desarrollo por hacer. No descartamos seguir con el proyecto e ir metiendo mejoras en las sucesivas revisiones, pero ante todo, estamos abiertos a posibles acuerdos de colaboración ya no únicamente como una propuesta de negocio, sino como para continuarlo como un servicio open source gestionado por la comunidad.

Si alguien está interesado, tiene en el menú de esta página el enlace al formulario de contacto de un servidor.

 

Edit a día 3 de Abril del 2015: Acabo de darme cuenta de que el vídeo ha sido borrado.