¿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?
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?
R
) aquí: stackoverflow.com/a/15376462/1036500Respuestas:
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
nk k
p
q
X n×p
M q×p matriz del grupo significa Z zik=1 i k , 0 en caso contrario)
= indicador de grupo ( z i k = 1 si obs . i en el grupo k
Suponga que cada variable tiene media 0:Z′Z=diag(n1,⋯,nq) M=(Z′Z)−1Z′X
, M = ( Z ′ Z ) - 1 Z ′ X
(total) matriz = T = X ′ X S S (entre grupos) matriz = B = M ′ Z ′ Z M S S (dentro de grupos) matriz = W = T - BSS T X′X
SS B M′Z′ZM
SS W T−B
(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
Z p×p
R2 R2
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 .R2 R2 p
fuente