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:
- reatribuir pontos reduz a soma dos quadrados
- recálculo da média reduz a soma dos quadrados
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 .
∑i(xi−μji)2j. Matematicamente, atribuir pela menor soma de quadrados é igual a atribuir por fecha a distância euclidiana ao quadrado, que (se você desperdiçar os ciclos da CPU para computação 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:
- Cada objeto é atribuído ao cluster mais próximo (por uma medida de distância arbitrária)
- O centro do cluster é atualizado para o objeto mais central do cluster, ou seja, com a menor distância média para todos os outros.
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.