A idéia subjacente ao algoritmo k-means é tentar encontrar clusters que minimizem a variação dentro do cluster (ou até uma constante a soma correspondente dos quadrados ou SS), o que equivale a maximizar o SS entre os clusters, porque a variação total é fixo. Como mencionado no wiki, você pode usar diretamente o SS interno e observar sua variação ao aumentar o número de clusters (como faríamos na Análise Fatorial com um screeplot): uma mudança abrupta na evolução do SS sugere uma solução ideal , embora isso apenas se destaque da apreciação visual. Como a variância total é fixa, é equivalente a estudar como evolui a razão entre o SS total e o total, também chamado de porcentagem de variação explicada, porque nesse caso, ele apresentará uma grande diferença de um k para o próximo k +1.
Em suma, você só precisa calcular a distância ao quadrado entre cada ponto de dados e seu respectivo centro (ou centróide), para cada cluster - isso fornece o SS interno e o total dentro do SS é apenas a soma das informações específicas do cluster WSS (transformá-los em variação é apenas uma questão de dividir pelos graus correspondentes de liberdade); o SS entre é obtido subtraindo o WSS total do SS total, sendo este último obtido considerando k = 1, por exemplo.
A propósito, com k = 1, WSS = TSS e BSS = 0.
Se você estiver determinando o número de clusters ou onde parar com o k-average, considere a estatística Gap como uma alternativa aos critérios do cotovelo:
Tibshirani, R., Walther, G. e Hastie, T. (2001). Estimando o número de clusters em um conjunto de dados por meio da estatística de gap . JR Statist. Soc. B , 63 (2): 411-423.