Introducción
El agrupamiento de grandes conjuntos de datos se está convirtiendo en una tarea esencial en muchos ámbitos como: la biomedicina, las redes sociales, el marketing, etc. Los avances recientes en la recopilación de datos traen consigo un aumento inexorable de los datos a manejar. El volumen, diversidad y complejidad de dichos datos dificulta los procesos de análisis y extracción del conocimiento, de manera que los modelos de minería de datos estándar necesitan ser rediseñados para funcionar adecuadamente.
El algoritmo DBSCAN (Density-based spatial clustering, DBSCAN) (Ester, Kriegel, Sander y Xu, 1996) pertenece a la familia de algoritmos de agrupamiento por densidades, es un algoritmo de agrupamiento de datos espacial basado en densidad para aplicaciones con ruido (DBSCAN Density-based spatial clustering of applications with noise), propuesto por Martin Ester, Hans-Peter Kriegel, Jörg Sander y Xiaowei Xu en 1996. Este tipo de algoritmos se basan en el concepto de densidad de la vecindad de un punto y miden el número de puntos alcanzables desde este, teniendo en cuenta un radio concreto.
DBSCAN fundamenta el agrupamiento en los siguientes conceptos. Clasifica los puntos como puntos núcleo, frontera (densamente alcanzables), o ruido de la siguiente forma:
Un punto P es un punto núcleo si al menos minPts puntos están a una distancia ε de él o, esos puntos son directamente alcanzables desde P. No es posible tener puntos directamente alcanzables desde un punto que no sea un núcleo.
Un punto Q es alcanzable desde P si existe una secuencia de puntos p1 ,…, pn donde p1 = P y pn=Q tal que cada punto pi+1 es directamente alcanzable desde pi; es decir, todos los puntos de la secuencia deben ser puntos núcleos, con la posible excepción de Q.
Un punto que no sea alcanzable desde cualquier otro punto es considerado ruido.
Si P es un punto núcleo, esté forma un grupo junto a otros puntos (núcleo o no) que sean alcanzables desde él. Cada grupo contiene al menos un punto núcleo. Los puntos no núcleos alcanzables pueden pertenecer al grupo, pero actúan como frontera puesto que no es posible alcanzar más puntos desde estos.
Por lo tanto, el tiempo de respuesta se ve comprometido cuando se aplica en el contexto de grandes volúmenes de datos.
Las recientes tecnologías basadas en la nube ofrecen un entorno ideal para dar solución a este problema. El esquema propuesto destaca un paradigma de programación simple y robusto con la capacidad de afrontar grandes conjuntos de datos en un grupo de nodos de cómputo (cluster node). En los últimos años, diversas técnicas de minería de datos se han adaptado satisfactoriamente mediante el uso de este paradigma, como se muestra en (Microsoft Academic, 2013), (Dean y Ghemawat, 2008). Algunos trabajos relacionados utilizan el modelo de programación MapReduce para el agrupamiento por densidades. Por ejemplo, en (White, 2015) y (Berger y Bokhari, 1987) los autores utilizan consultas DBSCAN dentro de un proceso MapReduce.
En este trabajo se presenta un enfoque paralelo del algoritmo DBSCAN basado en intercambio de mensajes (MPI) para un agrupamiento en un juego de datos considerablemente grande. El PP-DBSCAN ha sido implementado usado 3 etapas o fases. La fase de particionado, de mapeo (agrupamiento local) y la de reducción (actualización y mezcla). La fase de particionado consiste en generar regiones irregulares de grupos de datos que puedan ser procesadas de forma independiente. La fase mapeo consiste en desplegar el cómputo de similitud entre los ejemplos y crear los grupos por cada partición a través de nodos de computó. Como resultado de cada mapeo, cada ejemplo está agrupado y etiquetado (con las etiquetas núcleo, frontera o ruido) y son enviados a la etapa de reducción. La fase reducción determinará cuáles son los grupos finales mezclados y actualizados proporcionados por la fase anterior. En este escrito, se denota este enfoque como PP-DBSCAN. Para probar el rendimiento de este modelo, los experimentos realizados se han llevado a cabo en un conjunto de datos con 768 objetos con 9 atributos (8 numéricos y la clase). El estudio experimental incluye un análisis de la precisión y tiempo de ejecución.
Métodos o Metodología Computacional
En esta sección se explica cómo paralelizar el algoritmo DBSCAN sobre una herramienta MPI. El cómputo se organiza en tres operaciones principales: particionado, mapeo y reducción, las dos últimas fases decidimos nombrarla igual a como lo hace la terminología Hadoop MapReduce (White, 2015), para simplificar el procedimiento. La fase de particionado debe realizarse por el nodo maestro, el cual es el encargado de repartir los elementos a procesar tal que las particiones sean disjuntas, se pueden utilizar técnicas de particionado de longitud fijas o irregular. La fase de mapeo calculará los grupos utilizando el algoritmo clásico DBSCAN del conjunto ERI (Espacio de Representación Inicial) en las diferentes particiones, guardando para cada ejemplo el grupo y el tipo de objeto (núcleo, frontera y aislado o ruido). La fase reducción procesará los datos resumidos en la fase anterior, con la información enviada por cada nodo vecino, realizando las operaciones de actualización de los grupos y la mezcla de los mismos.
A. Fase de particionado
Sean ERI un conjunto de tamaño arbitrario almacenados en ficheros independientes. La fase de particionado divide el conjunto ERI en un número de particiones tal que a cada nodo se le asigna una sola partición, además identifica cuales van a ser las particiones vecinas, para que cada nodo sepa con quien debe comunicarse en las siguientes fases. En esta etapa se generan particiones formadas por un conjunto de objetos agrupados en regiones irregulares disjuntas, cumpliendo además que las densidades de cada región sean similares (aproximadamente la misma cantidad de elementos).
En la bibliografía se reportan varios métodos de particionados tales como: BSP (Binary Space Partitioning), ESP (Even Split Partitioning) y el RBP (Reduced Boundary Partitioning). Solo se implementó BSP, por su simplicidad en el cómputo. El objetivo fundamental de esta fase es realizar un primer agrupamiento que permita realizar las siguientes etapas de forma paralela y distribuida.
B. Fase de mapeo - Agrupamiento Local
Sea m el número de nodos (procesos de mapeo), cada tarea map (Map1, Map2, ..., Mapm) creará varios sub-agrupamientos de datos. Como resultado del particionado se logra: primero un análisis de forma individual (particiones) que se adapta a la filosofía de paralelización de datos logrando un procesamiento de forma independiente disminuyendo así el intercambio de datos entre los nodos. En segundo lugar, por estar identificado como repartir los datos aumenta la eficiencia en mecanismo de tolerancia a fallos.
Dado que el objetivo es obtener una implementación que mejore el rendimiento del algoritmo DBSCAN clásico, las tareas map se ejecutan sobre un subconjunto de datos (particiones) correspondiente al conjunto ERIj. Se calculan las distancias entre cada par de objetos, se determinan las eVecindades por objeto y con esto se comienzan a etiquetar los objetos en grupos usando el DBSCAN clásico. Como resultado se producen tablas con la forma <IdPart, IdG, idElem, TElem> (IdPart - identificador de la partición, IdG - identificador del grupo, IdElem - apuntador a la tupla del objeto, TElem - tipo de objeto [Núcleo, Frontera o Ruido]). El Algoritmo 1 expone el pseudocódigo de la función de mapeo. Cuando finaliza cada tarea map, envía a cada nodo vecino los objetos que pertenecen a la frontera de la partición (no se refiere a los elementos clasificados como frontera por el agrupamiento BDSCAN clásico) y la cantidad de grupos que se han creado.
C. Fase Reducción - Actualización y mezcla
El objetivo de la fase de reducción consiste en actualizar y mezclar los grupos encontrados en la fase de mapeo. Teniendo en cuenta que nuestro objetivo es diseñar un modelo que pueda escalar para conjuntos de ERI de tamaño arbitrario independientemente del número de muestras. El Algoritmo 2 describe el funcionamiento de esta fase, una explicación detallada es la siguiente: cuando la fase mapeo termina, cada nodo envía la información necesaria a los nodos vecinos, comenzando el proceso de reducción: primero actualiza los grupos a partir del valor recibido de su vecino, modificando los identificadores de grupos con el incremento de la cantidad de grupos producidos en el vecino inmediato inferior. Luego se realiza la mezcla de grupos. Para lograrlo, analiza cada punto que se encuentra en la frontera de la partición de los nodos vecinos. Si existe algún punto que este en la épsilon vecindad eVecidad de la partición vecina, se actualiza el grupo de todos los elementos que pertenecen a la épsilon vecindad y a los densamente alcanzables por ellos con el identificador de grupo del punto analizado.
Resultados y discusión
En esta sección se presentan todas las cuestiones planteadas en el estudio experimental.
A. Marco experimental
Se tendrán en cuenta las siguientes medidas para evaluar el rendimiento de la técnica propuesta:
Tiempo de ejecución: se anotará el tiempo dedicado por PP-DBSCAN en cada fase, así como el tiempo global para el agrupamiento del conjunto completo.
En este trabajo no utilizamos el criterio de precisión para medir la calidad del agrupamiento.
Los experimentos se han llevado a cabo en un cluster formado por 5 nodos: uno maestro y 4 de cómputo. Cada uno de los nodos de cómputo tiene un procesador Intel Core i7 4600, 8 núcleos por procesador a 2.10 Ghz y 8 GB de memoria RAM.
En términos de software, se ha utilizado la distribución de código abierto de MPI. Debe tenerse en cuenta que el número de nodos que pueden ejecutarse en paralelo está configurado a 5.
El estudio experimental se centra en el análisis del efecto del número de nodos (1, 2 y 4). El número de vecinos se fijó en 7 y el radio en 0.3 para el modelo propuesto PP-DBSCAN. Se utilizó el juego de datos “diabetes.arff” de UCI Weka.
B. Resultados obtenidos y análisis
En esta sección se presenta y analiza los resultados obtenidos en el estudio experimental. Los resultados del agrupamiento del algoritmo DBCAN clásico se utilizan como nuestra referencia base. La tabla 1 recoge el tiempo de ejecución (en segundos) de DBSCAN clásico y de la propuesta del artículo para: 2 y 4 procesadores en paralelo.
Conclusiones
La paralelización es la solución más común para enfrentar problemas de rendimiento en el mundo computacional. Todo problema secuencial que se pueda modelar desde un enfoque paralelo presupone menor tiempo de cómputo. En el caso del agrupamiento de datos, es necesario en algunos casos una modelación diferente del problema secuencial para poder hacerle frente al aprendizaje local, ya que los procesos paralelos trabajan con una porción de los datos. Para solucionar esto, en el agrupamiento basado en densidad fue necesario utilizar algoritmos de particionado, que permitan combinar los resultados intermedios de la paralelización alcanzando resultados similares al proceso secuencial sobre todo los datos como se ha explicado en el presente trabajo. La propuesta abordada propone un agrupamiento en tres fases donde el mapeo y la reducción se ejecutan en paralelo siguiendo la lógica del algoritmo DBSCAN obteniendo resultados superiores en término de velocidad de procesamiento conservando la calidad del agrupamiento secuencial.