2010-02-22 10 views
13

Se encuentran disponibles muchos algoritmos para clustering. Un algoritmo popular es el K-means donde, basado en un número dado de clusters, el algoritmo itera para encontrar los mejores clusters para los objetos.¿Qué método usas para seleccionar la cantidad óptima de clústeres en k-medias y EM?

¿Qué método usas para determinar el número de clústeres en los datos en k-means clustering?

¿Hay algún paquete disponible en R que contenga el método V-fold cross-validation para determinar el número correcto de conglomerados?

Otro enfoque bien utilizado es el algoritmo de maximización de expectativas (EM) que asigna una distribución de probabilidad a cada instancia que indica la probabilidad de que pertenezca a cada uno de los clústeres.

¿Este algoritmo se implementa en R?

En caso afirmativo, ¿tiene la opción de seleccionar automáticamente el número óptimo de conglomerados mediante validación cruzada?

¿Prefiere algún otro método de agrupamiento?

+0

Dejé intencionalmente la agrupación jerárquica porque hclust es un método bastante hambriento de memoria, no adecuado para grandes conjuntos de datos en los que estoy realmente más interesado. –

+0

Defina lo que quiere decir con "óptimo" – hadley

+0

Gran pregunta @Svante, he estado pensando mucho en eso. Incluso tuve la intención de escribir un paquete con varios algoritmos para una cantidad óptima de clusters (solo métodos hclust). @hadley, he conocido: índice C-H (Calinsky y Harabasz), C-índice, coeficiente gamma Goodman-Kruskal. y hay una manera de "elegir una solución de clúster óptima" mediante la prueba F. Aquí hay una referencia: Miligan, G.W. Y Cooper, M.C. (1985). Un examen de procedimientos para determinar el número de conglomerados en un conjunto de datos, Psychometrika, 50, 159-179 Aunque supongo que prefiere la decisión "basada en gráficos" sobre la solución óptima ... – aL3xa

Respuesta

5

Para grandes conjuntos de datos "dispersos" recomendaría seriamente el método de "propagación de afinidad". Tiene un rendimiento superior en comparación con k significa y es de naturaleza determinista.

http://www.psi.toronto.edu/affinitypropagation/ Se publicó en la revista "Science".

Sin embargo, la elección del algoritmo de agrupamiento óptimo depende del conjunto de datos considerado. K Means es un método de libro de texto y es muy probable que alguien haya desarrollado un mejor algoritmo más adecuado para su tipo de conjunto de datos/

Este es un buen tutorial del Prof. Andrew Moore (CMU, Google) sobre K Means y agrupamiento jerárquico. http://www.autonlab.org/tutorials/kmeans.html

0

semana pasada codifiqué un estado provisional-la-número-de-grupos tales algoritmo para un programa de la agrupación K-medias. He utilizado el método descrito en:

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.70.9687&rep=rep1&type=pdf

Mi mayor problema de aplicación era que tenía que encontrar un Índice de validación del clúster adecuado (es decir, la métrica de error) que funcionaría. Ahora es una cuestión de velocidad de procesamiento, pero los resultados actualmente parecen razonables.

Cuestiones relacionadas