Dentro del aprendizaje automático existen dos tipos: aprendizaje automático supervisado y aprendizaje automático no supervisado. El primer tipo de aprendizaje consiste en predecir el valor correspondiente a una entrada después de haber visto una serie de ejemplos etiquetados (datos de entrenamiento). La Regresión Lineal y los Árboles de Decisión son dos ejemplos. Sin embargo, el segundo tipo de aprendizaje consiste en realizar lo mismo que el anterior pero sin tener los datos de entrenamiento etiquetados previamente. En este grupo se incluyen las Redes Neuronales Artificiales y el Clustering. Hoy, nuestro Slashboy José María Sánchez, Artificial Intelligence Analyst en Slashmobility, nos habla sobre técnicas de Clustering, que nos permiten identificar grupos similares dentro un conjunto de datos.
Introducción al Clustering
Las técnicas de aprendizaje automático pueden resolver la identificación de grupos en los que se pueden agrupar los registros de un conjunto de datos. Un ejemplo de este tipo de problemas es obtener grupos que permitan identificar distintos tipos de clientes según las compras que han realizado con su tarjeta bancaria. Este tipo de problemas se resuelve utilizando el análisis de clúster o conglomerados. El análisis de clúster hace referencia a las familias de técnicas que permiten agrupar las observaciones de conjuntos de datos en clústers. De tal manera que los miembros asignados a un mismo clúster, muestren una mayor similitud entre sí que con los miembros de otros.
Pero, ¿en qué consiste esa similitud entre miembros? Una forma de obtener la similitud es asumir que los datos son puntos un espacio n-dimensional en el que se define una distancia con la que se mide la separación entre dos registros. De esta forma, la similitud de dos registros se relaciona con la inversa de su distancia. Existen muchos tipos de distancias. Sin entrar en mucho detalle, las más conocidas son:
- Distancia Euclídea: es la distancia más conocida, ya que se utiliza en el día a día para medir la separación entre dos puntos.
- Distancia de Manhattan: el nombre alude a que el diseño cuadriculado de las calles de la isla de Manhattan hace que el camino más corto posible en taxi sea exactamente esta distancia.
En la figura se muestra una comparación entre las dos distancias anteriores. La línea negra representa la distancia Euclídea. La distancia de Manhattan viene representada por los caminos verde y rojo. Es fácil ver que en estas dos últimas rutas se recorre la misma distancia.
Algoritmo K-Means
El algoritmo de clustering K-Means es una de las técnicas de análisis de clúster más utilizadas debido a su sencillez. 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. K-Means solamente necesita el conjunto de datos para ser entrenado y conocer el número de clúster k en el que se va a dividir dicho conjunto. De manera resumida, el funcionamiento de este algoritmo consiste en:
- En un espacio n-dimensional, generar tantos puntos (denominados centroides) como clústers se van a crear (k).
- Calcular la distancia de cada uno de los puntos del conjunto de datos a todos los centroides y asignar a cada punto el clúster del centroide más cercano.
- Para cada clúster, calcular la posición del nuevo centroide como la posición media de todos sus componentes.
- Si la posición de los nuevos centroides ha cambiado con respecto a los anteriores menos de una cantidad prefijada, el proceso termina. En caso contrario, se vuelve al punto dos.
En la siguiente imagen, se muestra el proceso de este algoritmo iteración por iteración para la obtención de tres grupos. En el primer paso, se generan los tres centroides (k = 3) de manera aleatoria.
Es muy importante destacar la importancia de seleccionar correctamente el número de clústers antes de proporcionárselos al algoritmo. De lo contrario no obtendrá los grupos correctos. Ejemplo de ello son las siguientes imágenes. En la primera se puede observar que el número de clústers es inferior al número real de grupos, mientras que en la segunda es al contrario.
¿Y cómo se puede obtener correctamente el número de clústers antes de ejecutar el algoritmo?
Hay diversas maneras y técnicas. Si los problemas se encuentran en espacios bidimensionales o tridimensionales, bastaría con visualizar los datos (como en los ejemplos anteriores). Sin embargo, en la realidad, los problemas son más complejos, por lo que hay que utilizar otras técnicas. Entre ellas:
- El método de la silueta (Silhouette Method). El método de la silueta se denomina así porque utiliza el coeficiente de la Silhouette. Éste se define como la diferencia entre la distancia media a los elementos del clúster más cercano y a distancia intra-clúster media de los elementos de un clúster dividido por el máximo de los dos. En el momento que se alcance el número de clústeres óptimos para un conjunto de datos, la Silhouette, en esta situación, se maximiza. La siguiente imagen muestra una gráfica del resultado de este método en el que el número óptimo de clústers es 5.
- El método del codo (Elbow Method). En este método se tiene que calcular la distorsión promedia de los clústers, que es la distancia promedia del centroide a todos los puntos del clúster y se obtiene con el algoritmo K-Means en función del número de clústers. Así, cuando se va de una situación en la que el número de clústers es inferior al correcto a una situación en la que el número es el adecuado, el valor de la dispersión disminuye bruscamente, mientras que si aumenta el número de clústers al adecuado, el valor de la dispersión se reducirá más lentamente, formando un codo en la gráfica. El siguiente imagen muestra una gráfica del resultado de este método en el que el número óptimo de clústers es 5.