Métodos de inicialização do cluster K-means


10

Estou interessado no estado da arte atual para selecionar sementes iniciais (centros de cluster) para K-means.

O Google leva a duas opções populares:

  1. seleção aleatória de sementes iniciais e,
  2. usando a técnica de seleção KMeans ++: Arthur & Vassilvitskii 2006 k-means ++: As vantagens da sementeira cuidadosa

Existem outros métodos promissores que alguém aqui conhece, que podem não ser tão populares?

Respostas:


11

Permita-me, sem ir muito longe, simplesmente copiar e colar uma lista de opções da minha própria função !kmini(uma macro para SPSS), encontrada na coleção "Clustering" aqui .

Método para criar ou selecionar centros de cluster iniciais. Escolher:

  • RGC - centróides de subamostras aleatórias . Os dados são particionados aleatoriamente por knão sobreposição, por associação, grupos e centróides desses grupos são apontados como os centros iniciais. Assim, os centros são calculados, não selecionados nos casos de conjuntos de dados existentes. Esse método gera centros próximos uns dos outros e do centróide geral dos dados.
  • RP - pontos selecionados aleatoriamente . kcasos distintos dos dados são selecionados aleatoriamente para serem os centros iniciais.
  • RUNFP - pontos mais distantes (seleção em execução). Os primeiros kcasos são tomados como centros e, em seguida, durante o restante dos casos do conjunto de dados, são feitas substituições progressivas entre os centros; o objetivo das substituições é obter nos kpontos finais mais distantes um do outro no espaço variável. Esses pontos (casos) que ocupam posições periféricas na nuvem de dados são os centros iniciais produzidos. (O método é usado como padrão no procedimento SPSS k-means QUICK CLUSTER. Veja detalhes em Algoritmos do SPSS. Consulte também descrito aqui ).
  • SIMFP - pontos mais distantes (seleção simples). O primeiro centro é selecionado como um caso aleatório no conjunto de dados. O segundo centro é selecionado como o caso o mais distante possível desse centro. O terceiro centro é selecionado como o caso o mais distante possível dos dois (do mais próximo dos dois), - e assim por diante.
  • KMPP - pontos mais distantes aleatórios, ou k-means ++. O primeiro centro é selecionado como um caso aleatório no conjunto de dados. O 2º centro também é selecionado aleatoriamente, mas a probabilidade de seleção de um caso é proporcional à distância (euclidiana quadrada) dele àquele (1º) centro. O terceiro centro é selecionado também aleatoriamente com a probabilidade de seleção proporcional à distância de um caso ao mais próximo desses dois centros, - e assim por diante. (Arthur, D., Vassilvitskii, S .. K-means ++: as vantagens de uma semeadura cuidadosa. // Anais do 18º simpósio anual da ACM-SIAM sobre algoritmos discretos. 2007., 1027-1035.)
  • GREP - pontos representativos do grupo . A idéia do método - coletar como centroskcasos mais representativos, “substitutos”. O 1º centro é considerado o caso mais próximo do cenóide de dados geral. Em seguida, o restante dos centros é selecionado a partir dos pontos de dados, de modo que cada ponto seja considerado se está mais próximo (e quanto, em termos de distância euclidiana quadrada) a um conjunto de pontos que cada um dos últimos é para qualquer um dos centros já existentes. Ou seja, cada ponto é examinado como candidato para representar um grupo de pontos ainda não suficientemente representados pelos centros já coletados. O ponto mais representativo a esse respeito é selecionado como o próximo centro. (Kaufman, L. Rousseeuw, PJ Encontrando grupos de dados: uma introdução à análise de agrupamentos., 1990. Veja também: Pena, JM et al. Uma comparação empírica de quatro métodos de inicialização para o algoritmo K-means // Pattern Recognition Lett. 20 (10), 1999,
  • [Existe também um método interessante, ainda não implementado por mim na macro, para gerar kpontos que são de uniforme aleatório, mas "menos aleatórios que aleatórios", em algum lugar entre aleatória e ganância; ver base teórica potencial para esse método]
  • Mais um método é fazer cluster hierárquico pelo método de Ward. Você pode fazer isso em uma subamostra de objetos se a amostra for muito grande. Então, os meios dos kaglomerados produzidos por ele são as sementes iniciais do procedimento k-means. Ward é preferível a outros métodos hierárquicos de agrupamento porque compartilha o objetivo de destino comum com k-means.

Os métodos RGC, RP, SIMFP, KMPP dependem de números aleatórios e podem alterar o resultado de execução para execução.

O método RUNFP pode ser sensível à ordem dos casos no conjunto de dados; mas o método GREP não é (exceto em ocasiões em que existem muitos casos idênticos, vínculos, nos dados). O método GREP pode falhar na coleta de todos os kcentros se kfor grande em relação ao número de casos nos dados ( n), especialmente quando k>n/2. [A macro informará se os dados não permitem que esse método colete kcentros]. O método GREP é o mais lento, calcula [na minha implementação] matriz de distâncias entre todos os casos, portanto, não será adequado se houver dezenas de milhares ou milhões de casos. Você pode, no entanto, fazer isso em uma subamostra aleatória dos dados.

Atualmente, não estou discutindo qual método é "melhor" e em que circunstância, porque até agora não fiz uma extensa análise simulacional da questão. Minhas impressões muito preliminares e superficiais foram de que o GREP é particularmente digno (mas caro) e que, se você deseja que o método realmente barato ainda seja competitivo o suficiente, apenas k pontos aleatórios, RP, são uma escolha decente.



5

A última vez que fiz uma revisão abrangente da literatura sobre o assunto, que foi admitida há quase 20 anos, as duas principais recomendações foram:

  1. Para usar o Método de Ward (este é um algoritmo hierárquico padrão de análise de cluster) para encontrar centros iniciais.
  2. Use arranques aleatórios.

Em aplicativos de big data, o método de Ward não funciona tão bem, embora possa ser aplicado a uma subamostra.

Fiz algumas simulações, que nunca cheguei a publicar, e descobri que:

A principal conclusão que tirei disso é que o algoritmo SPSS é surpreendentemente bom, mas se você tiver os recursos, mais de 1000 pontos de partida aleatórios serão o caminho a percorrer.


Em suas simulações, você notou alguma mudança no comportamento de dados de alta dimensão?
Arin Chaudhuri

Não que eu possa me lembrar. No entanto, minhas simulações não teriam usado mais de 20 variáveis, eu acho. No entanto, quanto maior a dimensionalidade, maior o número de partidas aleatórias necessárias, sendo tudo o mesmo.
Tim

Uma observação: o algoritmo padrão do SPSS (entre o link e o link está quebrado) é o que eu chamei de RUNFP na minha resposta.
ttnphns

3

Com a nomenclatura ttnphns, testei RGC, RP e KMPP em:

  • Pontos 2D / 3D
  • saco de palavras de documentos textuais
  • eu2

Não recomendo o RGC porque os centros resultantes são muito próximos um do outro: a média de muitos pontos é próxima da média global (lei de grandes números). Isso pode desacelerar bastante a convergência: leva algum tempo até que os clusters comecem a se individualizar.

O RP geralmente é bom e recomendaria como a primeira escolha fácil.

O KMPP é muito popular e funciona muito bem em pequena dimensão: comparado ao RP, ele tende a reduzir a probabilidade de terminar em um mínimo local.

No entanto, quando eu estava trabalhando em grandes conjuntos de dados (1 milhão de pontos que são um conjunto de palavras de documentos textuais com grande dimensão), o RP superou ligeiramente o KMPP no sentido de que terminava com um número menor de iterações. Fiquei surpreso com isso. No grande conjunto de dados / dimensão alta, a convergência para o mínimo global é impossível, você mede a qualidade como "quão bom é o mínimo local" = "quão pequeno é o SOD final". Ambos os métodos tiveram a mesma qualidade.

Observe que é importante usar um método aleatório se você quiser usar replicações para melhorar a qualidade.


Obrigado. Como lidarei com dados de grande dimensão, isso é bastante útil.
Arin Chaudhuri
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.