Machine Learning

Algoritmos de Machine Learning aplicados al Futbol: Segmentación (Clustering)

January 30, 2017

Ramon Julià

1. ¿Qué es Machine Learning?

A grandes rasgos podríamos decir que el Machine Learning o aprendizaje automático es un tipo de Inteligencia Artificial dirigido al desarrollo de técnicas para que las máquinas puedan aprender y tomar decisiones por sí mismas.

Este aprendizaje es posible gracias a la detección de patrones dentro de un conjunto de datos de manera que es el propio programa el que predice qué situaciones podrán darse o no. Estos cálculos son los que les permiten aprender para, finalmente, generar decisiones y resultados fiables.

2. Machine Learning Supervisado y Machine Learning no Supervisado

El Machine Learning es un campo muy amplio. Su rápida expansión está haciendo, además, que este se vea continuamente dividido en diferentes especialidades entre las que cabe destacar:

Machine Learning Supervisado

Es el más utilizado y requiere de intervención humana para la creación de etiquetas en el histórico de datos de manera que la máquina pueda predecir un resultado probable a partir de las mismas. Este método se utiliza, por ejemplo, para la predicción de posibles reclamaciones en sistemas de atención al cliente, detectar si un cliente pagara o no sus prestamos etc.

Machine Learning no Supervisado

El aprendizaje no supervisado es menos común y utiliza datos históricos que no han sido etiquetados. El objetivo es encontrar patrones a partir del propio análisis de datos. Un uso muy frecuente es el de segmentación de clientes con atributos similares para campañas de marketing.

3. Descripción del experimento

Partiendo de estos conceptos utilizaremos el dataset presentado en el post anterior, vamos a realizar los siguientes experimentos :

Segmentar en cuatro grupos a los jugadores de la liga de futbol profesional de la temporada 2015-16 en función de sus características comunes. El objetivo será ver si las diferentes agrupaciones que el algoritmo detecta son coherentes con las dinámicas del futbol.

El dataset consta de 611 instancias ( jugadores) y 27 features (atributos) Las features son del tipo: partidos jugados, minutos, goles marcados, paradas, goles encajados, asistencias, centros, tiros a puerta, faltas cometidas, faltas recibidas, tarjetas amarillas, tarjetas rojas..etc.

El algoritmo que utilizaremos para realizar la segmentación es k-means cluster, cuya operativa a modo esquemático es la que esta representada en la figura 1.

K-means es un método de agrupamiento, que tiene como objetivo la partición de un conjunto de n observaciones en k grupos en el que cada observación pertenece al grupo cuyo valor medio es más cercano.

Los puntos centrales de estos clusters, llamados centroid, nos dan las características medias del grupo. El usuario puede etiquetar opcionalmente cada clúster con un nombre descriptivo basado en las características del centroid.

 

                                      figura 1

Para realizar el experimento utilizaremos la plataforma de Bigml y su función “1-click cluster”.

Destacar  que en el dataset no se indica la posición del jugador en el campo, es decir estamos ante un problema de Machine Learning  no Supervisado.

Una vez realizamos todo el proceso según se describe en la figura 1, obtenemos el resultado siguiente :

Data distribución:

                          Global: 100% (611 instances)

                          Cluster 0: 54.17% (331 instances)

                          Cluster 1: 3.60% (22 instances)

                          Cluster 2: 38.63% (236 instances)

                          Cluster 3: 3.60% (22 instances)

 

Si analizamos el valor de los centroids, que nos dan las medias de la agrupaciones, vemos que las características  mas representativas de cada cluster son :

                        Cluster 0 : minutos:450,04, pases interceptados:9,44, partidos: 8,09, tiros: 4,8

                       Cluster 1 : minutos:2647,01, paradas: 86,83, goles encajados: 38,20, partidos: 29,92, faltas recibidas: 4,43

                      Cluster 2 : minutos: 2064,57, pases interceptados: 49,08, centros: 47, partidos: 27,9, tiros: 23,37

                     Cluster 3: minutos: 2657, tiros: 92,05, centro: 65,59, faltas recibidas: 52,32, tiros a puerta: 42,7, partidos: 33,45, corners lanzados: 28,64, goles: 17,18

 

Analizando las características de los centroids “etiquetamos” los clusters de la siguiente manera :

 

                          Cluster 0 : Jugadores suplentes

                          Cluster 1 : Porteros

                          Cluster 2 : Defensas y Medios

                          Cluster 3 : Delanteros

 

Esta clasificación la hacemos pariendo de criterios “ subjetivos” basados en las características predominantes en cada cluster.

 

Aplicando las agrupaciones anteriores, obtenemos para el cluster 3 la relación de jugadores siguientes :

 

 

En la web futbolfantasy.com se clasifican los jugadores en : Porteros, Defensas, Mediocampistas y Delanteros.

Si bien las agrupaciones no son iguales, vemos que el algoritmo ha clasificado correctamente 17 de los 22 jugadores sin tener ninguna información de la posición que el jugador ocupa en el campo.

Los 5 errores de categorización, debidos a no utilizar el mismo criterio de segmentación, que nos hacen asignan Mediocampistas como  Delanteros, en el caso del Futbol no podemos considerarlo un error de asignación “critico”.

4. Conclusiones

A la vista de los resultados obtenidos, vemos que el algoritmo de segmentación (K-Cluster), es capaz de agrupar a los jugadores  por  sus características  de juego, partiendo de unos datos genéricos que no informan de la posición dentro del campo.

Las aplicaciones de negocio de estas tecnologías comprenden  Segmentar una cartera de clientes ( Inteligencia del cliente, marketing y campañas, ciclo de vida del clientes) , Segmentar patrones de comportamientos (Perfiles de compradores en Retail, perfiles de consumo de luz, gas, teléfono), Segmentar material digital ( Documentos, tweets, videos), Detección de comunidades en todo tipo de redes sociales ( Detectar tipo de vínculos entre personas o entidades).

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *