Como definir o número de clusters no cluster K-means?

19

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?

Berkay
fonte
1
@berkay Como você define uma taxa de erro para esse método não supervisionado? (ou você quer dizer o dentro SS?)
chl
@chl, eu posso usar soma dos erros quadrados para todos os clusters ou precisão geral (neste caso, eu sei que os rótulos de classe.)
berkay
3
@berkay Um algoritmo simples para encontrar os clusters de nº é calcular o WSS médio para 20 execuções de k-médias em um número crescente de clusters (começando com 2 e terminando com digamos 9 ou 10) e manter a solução que possui WSS mínimo sobre esse conjunto de clusters. Outro método é a estatística Gap . Mas se você já possui instâncias rotuladas, por que está tentando um método não supervisionado?
chl 31/03
@chl obrigado, boa pergunta, podemos adivinhar os clusters dependendo dos recursos das intenções, estou analisando as novas características de intrusão, imitação de aplicações legais.
berkay
2
Eu respondi a um Q semelhante com meia dúzia de métodos (usando R) aqui: stackoverflow.com/a/15376462/1036500
Ben

Respostas:

8

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
nkk
p
q
Xn×p
Mq×p
Zzik=1ik

Suponha que cada variável tenha média 0:
, M = ( Z Z ) - 1 Z XZZ=diag(n1,,nq)M=(ZZ)1ZX

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 - BSSTXX
SSBMZZM
SSWTB

(trace = soma dos elementos diagonais)R2=1trace(W)trace(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
Zp×p
R2R2

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.R2R2p

Ralph Winters
fonte
2
Existem outros critérios além do CCC. Consulte Determinando o número de clusters em um conjunto de dados , para ver os principais.
Vincent Labatut