7 algoritmos de agrupamiento en estadísticas de matlab y caja de herramientas de aprendizaje automático

1. Descripción general de los algoritmos de agrupamiento en matlab

Este artículo proporciona una breve descripción general de los métodos de agrupamiento disponibles en Matlab Statistics and Machine Learning Toolbox, y presenta sus funciones de agrupamiento. En el proceso de uso, es muy conveniente llamar a esta función directamente, y tengo que sentir el poder de matlab.

El análisis de conglomerados, también conocido como análisis de segmentación o análisis de clasificación, es un método común de aprendizaje no supervisado. El aprendizaje no supervisado se utiliza para razonar a partir de datos de entrada no etiquetados para obtener la etiqueta de clasificación a la que pertenecen los datos, lo que equivale a "etiquetar" los datos. Por ejemplo, el análisis de conglomerados se puede utilizar para encontrar patrones ocultos o agrupaciones en datos sin etiquetar.

El análisis de conglomerados crea grupos o conglomerados de datos. Los objetos que pertenecen al mismo grupo son similares entre sí, y los objetos que pertenecen a diferentes grupos son diferentes entre sí. Para cuantificar "similares" y "diferentes", se pueden utilizar medidas de disimilitud (o medidas de distancia) aplicadas al dominio de programas y conjuntos de datos específicos. Además, según sus propias necesidades, puede considerar escalar (o estandarizar) las variables en los datos para darles la misma importancia en el proceso de agrupación.

Específicamente, la caja de herramientas de estadísticas y aprendizaje automático proporciona estos algoritmos de agrupación:

  • Agrupación jerárquica
  • Agrupación de k-medias y k-medoides
  • Agrupación espacial basada en la densidad DBSCAN con aplicaciones de ruido
  • modelo de mezcla gaussiana
  • k búsqueda de vecino más cercano y búsqueda de radio
  • Agrupación espectral Agrupación espectral

2. Introducción y aplicación de 7 algoritmos de agrupamiento que vienen con matlab

1) Agrupamiento jerárquico El agrupamiento jerárquico
agrupa datos en diferentes escalas mediante la creación de árboles de clúster o dendrogramas. El árbol no es una colección única de conglomerados, sino una jerarquía de varios niveles en la que los conglomerados de un nivel se combinan para formar conglomerados del siguiente nivel. Esta jerarquía de varios niveles le permite elegir el nivel o el tamaño del clúster que mejor se adapte a su aplicación. La agrupación jerárquica asigna cada punto de los datos a un grupo.

Utilice la función clusterdata para realizar una agrupación jerárquica en los datos de entrada. La función Clusterdata incluye funciones pdist , linkage y cluster 3, que se pueden usar para un análisis más detallado. Además, en el agrupamiento jerárquico, la función de dendrograma se puede utilizar para dibujar el árbol de agrupamiento para obtener el resultado visual del agrupamiento (gráfico de resultados del agrupamiento jerárquico). La introducción específica del agrupamiento jerárquico no se repetirá aquí, y una introducción más detallada puede actualizarse más adelante cuando haya tiempo.

T = clusterdata(X,cutoff)

Pero creo que estos son suficientes para que la gente entienda el contenido básico, y puede verlos y aplicarlos en matlab según sus propias necesidades. También puedes comunicarte conmigo.

2) Agrupación de k-medias y k-medoides
La agrupación de k-medias y la agrupación de k-medoides dividen los datos en k agrupaciones mutuamente excluyentes. Estos métodos de agrupamiento requieren que se especifique de antemano el número k de agrupamientos. Tanto el agrupamiento de k-medias como el de k-medoides asignan cada punto de los datos a un agrupamiento; sin embargo, a diferencia del agrupamiento jerárquico, estos métodos se basan en observaciones reales (en lugar de medidas de disimilitud) y crean un único nivel de agrupamiento. Por lo tanto, para grandes cantidades de datos, el agrupamiento de k-medias o k-medoides suele ser más adecuado que el agrupamiento jerárquico.

idx = kmeans(X,k)

idx = kmedoids(X,k)

En matlab, las funciones kmeans y kmedoids se pueden usar directamente para implementar k-means clustering y k-medoids clustering respectivamente. Para estos dos algoritmos de agrupamiento relativamente simples, debe estar familiarizado con ellos, por lo que no es necesario decir más.

3) Agrupamiento espacial basado en densidad con aplicación de ruido DBSCAN

DBSCAN es un algoritmo basado en la densidad que puede identificar grupos de forma arbitraria y valores atípicos (ruido) en los datos. Durante la agrupación, DBSCAN identifica puntos que no pertenecen a ningún grupo, lo que hace que el método sea útil para la detección de valores atípicos basados ​​en la densidad. A diferencia de los clústeres k-means y k-medoids, DBSCAN no requiere un conocimiento previo del número de clústeres , que es un punto muy importante.

idx = dbscan(X,epsilon,minpts)

En matlab, la función dbscan se puede utilizar directamente para realizar agrupaciones en la matriz de datos de entrada o en distancias por pares entre observaciones. Para obtener una introducción más detallada a DBSCAN, puede consultar mi blog anterior: Algoritmo de agrupamiento basado en densidad (1): explicación detallada de DBSCAN .

4) modelo de mezcla gaussiana

Los modelos de mezcla gaussiana (GMM) forman grupos como una mezcla de componentes de densidad normal multivariada. Para una observación dada, un GMM asigna una probabilidad posterior a cada componente de densidad (o grupo). La probabilidad posterior indica que la observación tiene cierta probabilidad de pertenecer a cada conglomerado. Los GMM pueden realizar un agrupamiento duro seleccionando el componente con la probabilidad posterior más grande como el grupo de observaciones asignado. También puede usar GMM para realizar un agrupamiento suave o difuso mediante la asignación de observaciones a múltiples agrupamientos en función de sus puntajes o probabilidades posteriores. GMM puede ser un método más adecuado que el agrupamiento de k-medias cuando los agrupamientos tienen diferentes tamaños y diferentes estructuras de correlación.

GMModel = fitgmdist(X,k)
idx = cluster(GMModel,X)

En matlab, use fitgmdist para ajustar un objeto gmdistribution a los datos que se analizan. También puede usar gmdistribution para crear objetos GMM especificando parámetros de distribución. Cuando hay un GMM adecuado, la función de agrupación se puede utilizar para agrupar los datos.

5) k búsqueda de vecino más cercano y búsqueda de radio

Una búsqueda de k vecino más cercano encuentra los k puntos más cercanos en los datos a un punto de consulta o conjunto de puntos. Por el contrario, una búsqueda de radio encuentra todos los puntos en los datos que están dentro de una distancia específica de un punto de consulta o un conjunto de puntos de consulta. Los resultados de estos métodos dependen de la métrica de distancia que especifique.

En matlab, puede usar directamente la función knnsearch para encontrar los k vecinos más cercanos, o usar la función rangesearch para encontrar todos los vecinos dentro de una distancia específica de los datos de entrada. También puede crear un objeto de búsqueda con un conjunto de datos de entrenamiento y pasar el objeto y el conjunto de datos de consulta a las funciones del objeto ( knnsearch y rangesearch ).

Idx = knnsearch(X,Y)

6) agrupamiento espectral agrupamiento espectral

El agrupamiento espectral es un algoritmo de agrupamiento basado en gráficos para encontrar k agrupamientos de forma arbitraria en los datos. Esta técnica consiste en representar datos en dimensiones bajas. En dimensiones bajas, los grupos en los datos están más separados, lo que permite el uso de algoritmos como k-means o k-medoids clustering. Esta dimensión baja se basa en los vectores propios de la matriz laplaciana. La matriz laplaciana es una forma de representar gráficos de similitud, que modela las relaciones de vecindad local entre puntos de datos como un gráfico no dirigido.

En matlab, puede usar directamente la función spectralcluster para realizar un agrupamiento espectral en la matriz de datos de entrada o la matriz de similitud del gráfico de similitud. La función Spectralcluster requiere que el número de grupos se especifique de antemano. Además, el algoritmo de agrupamiento espectral también proporciona un método para estimar el número de agrupamientos en los datos, y la aplicación específica se puede ver en matlab.

 idx = spectralcluster(X,k)

3. Resumen y comparación de 7 algoritmos de agrupamiento

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_50514171/article/details/128077044
Recomendado
Clasificación