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
k
nã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 .
k
casos distintos dos dados são selecionados aleatoriamente para serem os centros iniciais.
- RUNFP -
pontos mais distantes (seleção em execução). Os primeiros
k
casos 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 k
pontos 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 centros
k
casos 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
k
pontos 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
k
aglomerados 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 k
centros se k
for 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 k
centros]. 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.