¿Cómo definir el número de clústeres en el clúster K-means?

19

¿Hay alguna forma de determinar el número óptimo de clúster o debería probar diferentes valores y verificar las tasas de error para decidir el mejor valor?

berkay
fuente
1
@berkay ¿Cómo define una tasa de error para este método sin supervisión? (¿o te refieres a las SS
internas
@chl, puedo usar suma de errores al cuadrado para todos los clusters o precisión global (en este caso sé la clase de etiquetas.)
berkay
3
@berkay Un algoritmo simple para encontrar los clústeres de números es calcular el WSS promedio para 20 ejecuciones de k-means en un número creciente de clústeres (comenzando con 2 y terminando con digamos 9 o 10), y mantener la solución que tiene WSS mínimo sobre este conjunto de clústeres. Otro método es la estadística Gap . Pero si ya tiene instancias etiquetadas, ¿por qué está probando un método sin supervisión?
chl
@chl gracias, buena pregunta, podemos adivinar los clústeres dependiendo de las características de las inmutaciones, estoy analizando las nuevas características de intrusión, imitando las aplicaciones legales.
berkay
2
He respondido una pregunta similar con media docena de métodos (usando R) aquí: stackoverflow.com/a/15376462/1036500
Ben

Respuestas:

8

El método que uso es usar CCC (Criterios de agrupación cúbica). Busco que CCC aumente al máximo a medida que incremente el número de grupos en 1, y luego observo cuando el CCC comienza a disminuir. En ese punto, tomo el número de clústeres al máximo (local). Esto sería similar a usar un diagrama de pantalla para elegir el número de componentes principales.


Informe técnico SAS A-108 Criterio de agrupación cúbica ( pdf )

= número de observaciones n k = número en el grupo k p = número de variables q = número de grupos X = n × p matriz de datos M = q × pn
nkk
p
q
Xn×p
Mq×p matriz del grupo significa
= indicador de grupo ( z i k = 1 si obs . i en el grupo kZzik=1ik , 0 en caso contrario)

Suponga que cada variable tiene media 0:
, M = ( Z Z ) - 1 Z XZZ=diag(n1,,nq)M=(ZZ)1ZX

(total) matriz = T = X X S S (entre grupos) matriz = B = M Z Z M S S (dentro de grupos) matriz = W = T - BSSTXX
SSBMZZM
SSWTB

R2=1trace(W)trace(T)
(trace = suma de elementos diagonales)

Apila columnas de en una columna larga. Regresión en el producto Kronecker de Z con matriz de identidad p × p Calcule R 2 para esta regresión - mismo R 2X
Zp×p
R2R2

La idea de la CCC es comparar el que obtienes para un conjunto dado de grupos con el R 2 que obtendrías al agrupar un conjunto de puntos distribuidos uniformemente en el espacio dimensional p .R2R2p

Ralph Winters
fuente
2
Hay otros criterios además de CCC. Eche un vistazo a Determinación del número de clústeres en un conjunto de datos para ver los principales.
Vincent Labatut