Eu estava usando a kmeans
instrução de R para executar o algoritmo k-means no conjunto de dados de íris de Anderson. Eu tenho uma pergunta sobre alguns parâmetros que obtive. Os resultados são:
Cluster means:
Sepal.Length Sepal.Width Petal.Length Petal.Width
1 5.006000 3.428000 1.462000 0.246000
Nesse caso, o que significa "Cluster significa"? É a média das distâncias de todos os objetos dentro do cluster?
Também na última parte eu tenho:
Within cluster sum of squares by cluster:
[1] 15.15100 39.82097 23.87947
(between_SS / total_SS = 88.4 %)
Esse valor de 88,4%, qual poderia ser a sua interpretação?
Respostas:
Se você calcular a soma das distâncias ao quadrado de cada ponto de dados para a média global da amostra, obtém
total_SS
. Se, em vez de calcular uma média global da amostra (ou 'centróide'), você calcular uma por grupo (aqui, existem três grupos) e depois calcular a soma das distâncias quadradas dessas três médias à média global, você obtémbetween_SS
. (Ao calcular isso, você multiplica a distância ao quadrado de cada média pela média global pelo número de pontos de dados que ela representa.)Se não houvesse um padrão discernível de agrupamento, as três médias dos três grupos estariam próximas da média global e
between_SS
seriam uma fração muito pequena detotal_SS
. O oposto é verdadeiro aqui, o que mostra que os pontos de dados se agrupam perfeitamente no espaço quadridimensional de acordo com as espécies.fonte
K-means não é um algoritmo de cluster baseado em distância .
K-significa procura a soma mínima de atribuição de quadrados , ou seja, minimiza a variação não normalizada (=
total_SS
) atribuindo pontos aos centros de cluster.Para que o k-means converja, você precisa de duas condições:
Como existe apenas um número finito de combinações, você não pode reduzir infinitamente esse valor e o algoritmo deve convergir em algum momento para um ótimo local .
sqrt
) é igual à atribuição mínima da distância euclidiana. Portanto, a intuição de atribuir cada ponto à média mais próxima está correta, mas não o que o problema de otimização faz.between_SS
provavelmente é a soma ponderada dos quadrados entre duas médias, para medir o quão bem os centros de cluster estão separados (nota: centros de cluster, ele não compara os clusters reais - tecnicamente, a célula Voronoi do cluster toca a célula Voronoi dos clusters vizinhos).Observe que com k-significa que você pode melhorar a qualidade ingênua do cluster aumentando k. A qualidade medida aqui é um valor matemático, que pode não corresponder aos requisitos do usuário. A íris é, na verdade, um exemplo bastante bom, onde o k-significa frequentemente converge para resultados menos que satisfatórios, mesmo considerando as informações externas de que deve haver exatamente três grupos.
Se você quiser uma variação baseada em distância de k-médias , veja k-medoids . Aqui a convergência é garantida substituindo a média pelo medóide:
Em cada etapa, a soma das distâncias diminui; existe um número finito de combinações; portanto, o algoritmo deve terminar em um mínimo local.
fonte