Ordenar puntos para identificar la estructura de agrupamiento ( OPTICS ) es un algoritmo para encontrar [1] agrupamientos en datos espaciales basados en la densidad . El algoritmo fue presentado por Michael Ankerst, Markus M. Breunig, Hans-Peter Kriegel y Jörg Sander [2] . La idea básica del algoritmo es similar a DBSCAN [3] , pero el algoritmo está diseñado para deshacerse de una de las principales debilidades del algoritmo DBSCAN: el problema de detectar grupos significativos en datos que tienen diferentes densidades. Para hacer esto, los puntos de la base de datos se ordenan (linealmente) de modo que los puntos espacialmente cercanos se conviertan en vecinos en el ordenamiento. Además, se almacena una distancia especial para cada punto, que representa la densidad que se debe asumir para el clúster para que los puntos pertenezcan al mismo clúster. Esto se representa como un dendrograma .
Al igual que DBSCAN , el algoritmo OPTICS requiere dos parámetros: el parámetro ε describe la distancia máxima (radio) que se tiene en cuenta y el parámetro MinPts describe la cantidad de puntos necesarios para formar un grupo. Un punto p es un punto central si al menos MinPts de puntos están en su vecindario ε . A diferencia de DBSCAN , el algoritmo OPTICS también considera puntos que forman parte de un grupo más denso, por lo que a cada punto se le asigna una distancia básica , que describe la distancia al punto más cercano de MinPts :
Aquí core-dist = distancia del núcleo, = -th en orden ascendente de distancia a .
La distancia alcanzable del punto o desde el punto p es la distancia entre o y p , o la distancia básica del punto p , la que sea mayor:
Aquí reachability-dist = distancia alcanzable.
Si p y o son los vecinos más cercanos y , podemos suponer que p y o pertenecen al mismo grupo.
Tanto las distancias básicas como las alcanzables no están definidas a menos que haya un grupo suficientemente denso (como se aplica a ε ). Dado un ε lo suficientemente grande , esto nunca sucederá, pero luego cualquier consulta de ε -vecindario devolverá la base de datos completa, lo que resultará en tiempo de ejecución . El parámetro ε es necesario para cortar grupos sueltos que ya no son interesantes y, por lo tanto, acelerar el algoritmo.
El parámetro ε es, estrictamente hablando, opcional. Simplemente se puede establecer en el valor máximo posible. Sin embargo, cuando un índice espacial está disponible, afecta la complejidad computacional. OPTICS difiere de DBSCAN en que este parámetro no se tiene en cuenta, si ε puede influir, solo configurando el valor máximo.
El enfoque básico del algoritmo OPTICS es el mismo que DBSCAN , pero en lugar de admitir muchos miembros de clúster conocidos pero aún no procesados, se utiliza una cola de prioridad (es decir, un montón indexado ).
ÓPTICA (DB, eps, MinPts) para cada punto p de DB p.reachable_distance=indefinido para cada punto bruto p de DB N=obtenerVecinos (p, eps) marcar p como procesado poner p en una lista ordenada if (base_distance(p, eps, Minpts) != indefinido) Semillas = cola de prioridad vacía actualizar (N, p, Semillas, eps, Minpts) para cada siguiente q de Seeds N'=obtenerVecinos(q, eps) marcar q como procesado poner q en una lista ordenada if (distancia_básica(q, eps, Minpts) != indefinido) actualización (N', q, Semillas, eps, Minpts)En el procedimiento de actualización (), la cola de prioridad de semillas se actualiza por vecinos de los puntos y, en consecuencia:
actualización (N, p, Semillas, eps, Minpts) coredist=distancia_base(p, eps, MinPts) para cada o en N si (o no procesado) new_dist_dist=max(corredista, dist(p,o)) if (o.reachable_distance == indefinido) // el punto o no está en Seeds o.reach_distance=nueva_distancia_de_alcance Seeds.insert(o, new_delivery_dist) de lo contrario // punto o en Seeds, compruebe si hay mejoras if (nueva_distancia_de_alcance < o. distancia_de_alcance) o.reach_distance=nueva_distancia_de_alcance Seeds.move_up(o, new_advance_growth)OPTICS coloca los puntos en un cierto orden, marcándolos con la distancia más pequeña posible (en el algoritmo original, también se recuerda la distancia principal, pero esto no es necesario para el procesamiento posterior).
Usando un gráfico de accesibilidad (un tipo especial de diagrama de árbol ), es fácil obtener una estructura jerárquica de grupos. Esta es una gráfica 2D donde los puntos se trazan en el eje x en el orden en que son procesados por el algoritmo OPTICS, y la distancia alcanzable se traza en el eje y. Debido a que los puntos que pertenecen a un clúster tienen una pequeña distancia alcanzable a su vecino más cercano, los clústeres parecen valles en un gráfico de accesibilidad. Cuanto más profundo es el valle, más denso es el racimo.
La figura anterior ilustra este concepto. El área superior izquierda de la figura muestra el conjunto de datos simulados. El área superior derecha de la figura visualiza el árbol de expansión obtenido por el algoritmo OPTICS, y la parte inferior de la figura muestra el diagrama de alcanzabilidad obtenido por OPTICS. Los colores de este gráfico son etiquetas y no los calcula el algoritmo. Sin embargo, se ve claramente cómo los valles en el gráfico corresponden a los grupos del conjunto de datos dado. Los puntos amarillos de esta imagen se consideran ruido y no corresponden a ningún valle. Por lo general, no se asignan a ningún clúster, excepto al clúster general "todos los datos" en el resultado jerárquico.
La extracción de grupos de dicho gráfico se puede hacer manualmente seleccionando intervalos en el eje x después de ver el gráfico, eligiendo un umbral en el eje y (entonces el resultado es similar al agrupamiento DBSCAN con los mismos valores y minPts, en nuestro caso un valor de 0.1 puede dar buenos resultados), o usando varios algoritmos que intentan determinar los valles por la inclinación del gráfico, por la curvatura o por máximos locales. Los agrupamientos obtenidos de esta manera suelen ser jerárquicos y no se pueden obtener en una sola ejecución del algoritmo DBSCAN.
Al igual que DBSCAN , el algoritmo procesa cada punto solo una vez y realiza una consulta de un vecino durante este procesamiento. Dado un índice espacial que asegura que la consulta de vecindad se ejecuta a tiempo , obtenemos el tiempo total de ejecución . Los autores del artículo original en OPTICS informan una desaceleración constante de 1,6 veces en comparación con DBSCAN. Tenga en cuenta que el valor puede afectar en gran medida el costo del algoritmo, ya que un valor demasiado grande puede aumentar la complejidad de la consulta de vecindad a una lineal.
En particular, es posible una selección (mayor que la distancia máxima en el conjunto de datos), pero obviamente conduce a una complejidad cuadrática, ya que una consulta de lista de vecinos devuelve el conjunto de datos completo. Incluso si no hay ningún índice espacial disponible, esto da como resultado una sobrecarga adicional en el mantenimiento del almacenamiento dinámico. Por lo tanto, se debe elegir adecuadamente para el conjunto de datos.
OPTICS-OF [4] es un algoritmo de detección de anomalías basado en OPTICS. Se utiliza principalmente para extraer valores atípicos de una ejecución existente del algoritmo OPTICS a un bajo costo en comparación con otros métodos de extracción de valores atípicos. La versión más conocida del algoritmo de detección de valores atípicos locales se basa en los mismos conceptos.
DeLi-Clu [5] , ( Density-Link-Clustering ) combina ideas del método de agrupamiento único y el algoritmo OPTICS, eliminando el parámetro y agregando mejoras de eficiencia sobre OPTICS.
HiSC [6] es un método de agrupamiento subespacial jerárquico (paralelo a los ejes) basado en OPTICS.
HiCO [7] es un algoritmo de agrupamiento de correlación jerárquica basado en OPTICS.
DiSH [8] es una mejora del algoritmo HiSC que puede encontrar jerarquías más complejas.
FOPTICS [9] es una implementación rápida que utiliza proyecciones aleatorias.
HDBSCAN* [10] se basa en una mejora del algoritmo DBSCAN mediante la exclusión de los puntos límite de los grupos y, por lo tanto, una definición más rigurosa de los niveles de densidad (según Hartigan) [11] .
Las implementaciones Java de OPTICS, OPTICS-OF, DeLi-Clu, HiSC, HiCO y DiSH están disponibles en el sistema de minería de datos ELKI (con índice acelerado para algunas funciones de distancia y con agrupamiento automático usando el método ξ). Otra implementación de Java incluye una extensión del kit de herramientas de Weka (sin soporte para la agrupación en clústeres con ξ). El paquete de lenguaje R "dbscan" incluye una implementación en C++ del algoritmo OPTICS (con agrupamiento tradicional como dbscan y ξ) que utiliza un árbol de dimensiones K para acelerar el índice de la distancia euclidiana.
El lenguaje Python tiene las siguientes implementaciones. OPTICS está disponible en la biblioteca PyClustering . HDBSCAN está disponible en la biblioteca hdbscan , que se basa en scikit learn .
Aprendizaje automático y minería de datos | |
---|---|
Tareas | |
Aprendiendo con un maestro | |
análisis de conglomerados | |
Reducción de dimensionalidad | |
Pronóstico estructural | |
Detección de anomalías | |
Graficar modelos probabilísticos | |
Redes neuronales | |
Aprendizaje reforzado |
|
Teoría | |
revistas y congresos |
|