¿Qué es SoccergraphR?
Conocimos al creador de soccergraphR en las XI Jornadas de Usuarios de R en las que Máxima Formación participó como entidad patrocinadora, y quisimos saber más sobre la librería más futbolera de R Software:
¿Quién es Jesús Lagos creador de soccergraphR?
Contra todo pronóstico, ni soy matemático, ni estadístico, ni titulado en ninguna de las carreras STEM típicas. Estudié Ingeniería de Montes en Valencia, pero desde mis inicios me he dedicado al mundo de la inteligencia de negocio con el Geomarketing cuando aún era poco conocido. He desarrollado mi carrera profesional en consultoría.
Desde hace 8 años trabajo en la operadora de telecomunicaciones, Orange, en áreas de Inteligencia, y desde hace 2 años como Product Owner en el área de Big Data.
¿En qué consiste soccergraphR?
SoccergraphR es una librería que me sirvió para desarrollar mi TFM, donde automaticé todo el conocimiento en la exploración, tratamiento y modelización de datos de fútbol, y en particular del proveedor más importante en el mercado a día de hoy, OPTA.
No es solo una herramienta de visualización, también permite modelar (por detrás hay un gbm para construir las métricas de xG, un kmeans con igraph para analizar redes de pases no solo de pase, si no por posición de pase) o sobre todo y lo más importante, hacer más fácil la vida del analista de datos.
¿Cuál es su razón de ser y cómo surgió la idea de desarrollarlo?
Cuando trabajas en squads de Big Data como Product Owner enseguida te das cuenta que tienes que volver al principio para poder planificar y gestionar casos de uso. Todo esto me llevó a retomar mi formación en ciencia de datos, cursando un Máster, pero con una salvedad, lo hice enfocado al deporte, porque os puedo asegurar que es más divertido aprender jugando con bases de datos de deporte que con iris o mtcars.
Como comentaba la idea inicial era algo más formal, hacer mi TFM, pero enseguida me di cuenta de que había un problema.
Muchos compañeros del Máster venían del mundo del deporte, y adquirir competencias por ejemplo en R les era más complicado. Simplemente cargar la información de OPTA que viene en XML se volvía una odisea. Con soccergraphR te ahorras estos problemas, y con un conocimiento básico de R puedes explotar mucha información de OPTA. Pensad que OPTA suministra para una temporada 380 xml por tipo, es decir, 380 del fichero F24 que son los eventos, unos diez mil por partido, con más de 200 columnas, codificadas, y otros ficheros como F8, passmatrix, etc. Con soccergraphR puedes explotar la información directamente además de usar todas las funciones incorporadas.
¿Quién es el público usuario de soccergraphR y qué necesidades les ha ayudado a resolver?
Lo comentaba antes, poder explotar la información es una barrera de entrada muy grande, y con este tipo de librerías cualquier analista deportivo con un poco de base podrá aprovechar mucho más la información de la que dispone. Como siempre recalco, lo importante no son los datos, es el valor que sacamos de ellos y lo que he intentado es sacar valor de los mismos de manera fácil para el usuario.
¿Por qué lo has basado en R y no en otros lenguajes de programación estadística?
Pues en el Máster tuvimos la suerte de poder usar R, Python y pyspark pero opté por el primero principalmente por su curva de aprendizaje. Aprender R es muy sencillo como lenguaje de programación para los que no tenemos un backgorund informático.
A todo esto le uno que en aquel momento en mi squad contaba con profesionales de R de contrastado prestigio, como José Luis Cañadas, que lo tuve como “tutor” en mis avances con el Máster.
Aún así remarco que el valor no está ni el dato ni la herramienta, y en mi carrera me he encontrado profesionales que han sido capaces de sacar verdadero valor hasta de un Excel. Evidentemente los paquetes y librerías de modelización finalmente han sido los que me han alejado de otras opciones.
Además de R ¿qué herramientas y paquetes integra soccergraphR?
Los paquetes actualmente que integra son XML para procesar todos los ficheros de OPTA, dplyr, gbm y caret para los modelos de xG, ggforce y ggplot2 para visualizaciones, readr para leer algunos ficheros de datos y igraph para las métricas de SNA.
Aunque no está en la librería tengo montado un shiny para poder visualizar toda la información en un cuadro de mando.
¿Qué es capaz de hacer soccergraphR?
SoccergraphR incluye 22 funciones pero si tengo que resaltar alguna son las funciones de análisis de redes.
En los ficheros de eventing de OPTA vienen clasificados además de otras categorías los pases, entre qué jugadores, en que posesión, en qué punto del campo inicia el paso y a que punto del campo se dirige el pase, así como el evento que le precede (permite concatenar pases) como si acaba en tiro.
Con esta información podemos construir las redes entre jugadores calculando métricas de juego como:
- Densidad de la redUn valor entre 0 y 1 siendo 1 cuando todos los jugadores se pasan el balón entre ellos. Equipos como Barcelona, Madrid o Betis son equipos con densidades muy altas, pero más que ver una densidad promedio es más interesante ver la dinámica en función de los resultados, cuando un equipo va ganando o perdiendo. Entender de un rival como será su densidad ante una situación nos ayudará a tomar mejores decisiones.
- Intermediación de un jugador en la redEs una medida de centralidad, y nos indica la importancia de un jugador en el juego colectivo dado que mayor intermediación mayor probabilidad de que el balón pase por sus piernas hasta llegar a otro compañero. Y nuevamente recalco ese punto, porque el jugador históricamente con mayor intermediación del Barça era Xaví, pero cuando analizabas posesiones que acababan en disparo su peso bajaba aumentando la intermediación de Iniesta o Messi
- Red por pase no por jugadorOtra posibilidad es dejar de lado al jugador y centrarnos en el pase. Por ejemplo, ¿qué ocurre cuando los dos centrales permutan posiciones?¿o los extremos? Veremos cosas raras en el grafo, combinaciones imposibles entre jugadores alejados, y es que cuando ves una red hay que localizar al jugador en un punto, por ejemplo el promedio de sus acciones. Lo resolví parametrizando un kmeans en la librería pudiendo generar k clusters de zonas de pases por su coordenada, viendo las zonas por donde más circula el balón y las zonas de intermediación. A la hora de planificar la táctica de un partido es de gran utilidad conocer la importancia de los espacios.
Aquí tenéis ejemplos de algunas funciones y su salida:
Y aquí una imagen de la mayoría de las funciones:
¿Qué tal fue tu experiencia como ponente en las XI Jornadas de Usuarios de R?
Las Jornadas me las tomé como un reto, porque aunque he tenido la suerte de dar conferencias, sobre todo en temas de Geomarketing, para mí estar delante de personas de gran prestigio era muy motivador.
Evidentemente mi librería no es un paquete como los que pudimos ver allí como ml3 o H20, pero creo que muchas veces ver una aplicación directa en algo tan “de todos los días” como el fútbol siempre es interesante. Además me llevo los comentarios que me dieron, de mucha gente que no le gusta el fútbol pero les resultó muy interesante el enfoque.
Además me reecontré con viejos amigos, conocí a otras muchas que seguí por redes sociales, y desde luego si pudiera repetiría con aplicaciones más avanzadas en próximas ediciones.
¿Dónde podemos encontrar más información sobre soccergraphR?
En github (https://github.com/Jelagmil) podréis encontrar toda la información disponible, ejemplos de ficheros de OPTA con los que usar la librería además de otras librerías de R que he publicado como:
- FootballBadgesCon esta sencilla librería podrás hacer gráficos x,y donde los puntos se representan con escudos de las ligas italiana, francesa, inglesa, alemana o española, pasando como parámetro un dataframe y los campos x e y. Por supuesto hay que preparar el dataframe para codificar correctamente el código de cada equipo pero facilita y mejora la calidad del gráfico.
- MapxGgraphREsta nueva librería te permite a partir de un data entry en consola contruir un mapa de disparos con su xG y el gráfico acumulado de xG por minuto. Es interesante porque puedes hacerlo para el partido que quieras, solo tienes que anotar previamente unos datos de cada disparo para poder hacer el predict con un modelo xG cargado en la librería.
¡Gracias por compartir el universo de soccergraphR con los lectores de Máxima Data Science!
Por cierto ¿cómo pueden contactar contigo?
Soy muy activo en redes sociales, tanto en Linkedin (jesuslagos) como en Twitter (@Vdot_Spain) donde hablo de atletismo y fútbol, y por supuesto de R.
¡Gracias!
0 comentarios
Nadie ha publicado ningún comentario aún. ¡Se tu la primera persona!