Existe alguma maneira de determinar o número ideal de cluster ou devo tentar valores diferentes e verificar as taxas de erro para decidir sobre o melhor valor?
clustering
unsupervised-learning
Berkay
fonte
fonte
R
) aqui: stackoverflow.com/a/15376462/1036500Respostas:
O método que eu uso é usar o CCC (Cubic Clustering Criteria). Procuro que o CCC aumente ao máximo à medida que incremento o número de clusters em 1 e, em seguida, observo quando o CCC começa a diminuir. Nesse ponto, tomo o número de clusters no máximo (local). Isso seria semelhante ao uso de um gráfico de scree para selecionar o número de componentes principais.
Relatório Técnico SAS A-108 Critério de agrupamento cúbico ( pdf )
= número de observações n k = número no cluster k p = número de variáveis q = número de clusters X = n × p matriz de dados M = q × p matriz do cluster significa Z = indicador do cluster ( z i k = 1 se obs . i em conjunto k , 0 de outro modo)n
nk k
p
q
X n × p
M q× p
Z zeu k= 1 Eu k
Suponha que cada variável tenha média 0:Z′Z= diag ( n1, ⋯ , nq) M= ( Z′Z) - 1 Z′X
, M = ( Z ′ Z ) - 1 Z ′ X
Matriz S S (total) = T = X ′ X S S (entre os aglomerados) matriz = B = M ′ Z ′ Z M S S (dentro dos aglomerados) matriz = W = T - BSS T X′X
SS B M′Z′ZM
SS W T- B
(trace = soma dos elementos diagonais)R2= 1 - traço (W)traço ( T)
Empilhe colunas de em uma coluna longa. Regress no produto de Kronecker de Z com p × p matriz identidade Computar R 2 para esta regressão - mesmo R 2X
Z p × p
R2 R2
A idéia CCC é comparar a você começa para um determinado conjunto de clusters com o R 2 que se obtém agrupando um conjunto distribuído uniformemente de pontos em p espaço dimensional.R2 R2 p
fonte