El algoritmo de clústeres de Microsoft

15.12.2013 02:14
 

  El análisis de clúster es el proceso de clasificación de un grupo de elementos en otros subgrupos por criterios de afinidad entre ellos. Es un análisis muy utilizado en campos tan diversos  como la estadística, la bioinformática, data mining, reconocimiento de caracteres, etc Dichos criterios de clasificación  pueden obedecer a diversos algoritmos de cálculo destacando  entre ellos:

Modelos jerárquicos: buscan relaciones entre los elementos creando jerarquías en dos modos, por agregación o por división:

 

Existen en el mercado muchos programas que usan estos algoritmos como:

Cluster 3.0 de código abierto

https://bonsai.hgc.jp/~mdehoon/software/cluster/

ELKI de código abierto

https://elki.dbs.ifi.lmu.de/

Y aplicaciones comerciales como:

 

MATLAB

https://www.mathworks.es/products/matlab/

o

SAS

https://www.sas.com/

 

k-means clustering: es un método de agrupamiento, que tiene como objetivo la partición de un conjunto n en k grupos en el que cada observación pertenece al grupo más cercano a la media. Esto da lugar a una compartimentación del espacio de datos en celdas de Voronoi.

El algoritmo mediana-K calcula las distancias euclidianas cuadradas entre los registros de datos de un clúster y el vector que representa la media de clústeres, y converge en un conjunto final de K clústeres cuando la suma alcanza su valor mínimo.

Se procede a generar arbitrariamente un numero k de puntos aleatorios (en color)

 

 

Para luego agrupar a los demás en función de la distancia a éstos

 

Se usa en diversos programas como los anteriormente citados de los que destacaría MATLAB

https://www.youtube.com/watch?v=5FmnJVv73fU

 

Modelos de distribución basados en el  Algoritmo esperanza-maximización:

 

El algoritmo esperanza-maximización o algoritmo EM se usa en estadística para encontrar estimadores de máxima verosimilitud de parámetros en modelos probabilísticos que dependen de variables no observables. El algoritmo EM alterna pasos de esperanza (paso E), donde se computa la esperanza de la verosimilitud mediante la inclusión de variables latentes como si fueran observables, y un paso de maximización (paso M), donde se computan estimadores de máxima verosimilitud de los parámetros mediante la maximización de la verosimilitud esperada del paso E. Los parámetros que se encuentran en el paso M se usan para comenzar el paso E siguiente, y así el proceso se repite.

El algoritmo EM permite descubrir parámetros ocultos (de Markov )  a partir de datos observables y descubrir asimismo estructuras de distribución normal de Gauss

 

https://es.wikipedia.org/wiki/Algoritmo_esperanza-maximizaci%C3%B3n

 

El algoritmo de clústeres de Microsoft incluye dos métodos, el de k-means y el EM esperanza-maxificación. Por defecto el algoritmo EM está predefinido en el parámetro CLUSTERING_METHOD.

 

 

 

El algoritmo EM se basa en probabilidades, por lo que cada elemento pertenece a todos los clústeres por lo que es asignado finalmente al clúster con mayor probabilidad

Ambos métodos ofrecen la opción escalable y no escalable. Escalable utiliza los 50.000 primeros registros y no escalable la totalidad, cono las necesidades de RAM que ello comporta.

Otro parámetro interesante es CLUSTER_SEED que permite probar varios modelos que se originan en el  cálculo inicial aleatorio previo a la clusterización. Si los resultados de los cambios de parámetro son parecidos significara que el modelo es estable.

Por ultimo destacar las funciones más utilizadas en lenguaje DMX referentes a este algoritmo:

 

ClusterProbability

Devuelve la probabilidad de que el caso de entrada pertenezca al clúster especificado.

Cluster

Devuelve el clúster que tiene la mayor probabilidad de contener el caso de entrada.

ClusterDistance

Devuelve la distancia del caso de entrada con relación al clúster especificado o, si no hay especificado ninguno, la distancia del caso de entrada del clúster más probable.