Clusterização usando o KMeans - Segmentation-Fault-Machine-Learning/Knowledge GitHub Wiki
K Means
K Means é um método bastante conhecido para análise de clustering em data mining, e este método possui um funcionamento bastante simples que será explicado abaixo:
Por ser um algoritmo de clustering, o funcionamento básico do K Means, e o que se espera do algoritmo, é a realização de agrupamentos automáticos de dados de acordo com seu grau de semelhança. A figura abaixo ilustra bem um exemplo simples do resultado esperado após a implementação do K Means:
O processo básico do algoritmo, passa por 5 passos:
-
Seleciona o número K de clusters
Nesse passo, você define qual é a quantidade de clusters que você deseja que o algoritmo crie. O número de clusters irá variar bastante, de acordo com seu tipo de problema e a disposição de seus dados, vamos falar sobre isso com mais detalhe posteriormente.
-
Seleciona a posição dos K centróides
O algoritmo pode atribuir a posição dos K centróides aleatóriamente, o ponto pode estar contido no seu dadaset ou não. Os centróides terão um papel fundamental na criação dos clusters e o processo de refinamento.
- Atribui cada ponto ao seu centróide mais próximo
Cada ponto no seu dataset será atribuído ao centróide mais próximo.
- Recalcula a posição do centróide de cada cluster
Os novos pontos agora influenciam a posição do centróide. É dito que eles são realocados para o local com mais concentração de pontos.
- Recalcula a atribuição de cada ponto ao seu centróide mais próximo
Após o reposicionamento do centróide, os pontos são atribuidos novamente ao centróide mais próximo. Caso seja necessário reatribuir um ponto a outro centróide, o algoritmo volta ao passo 4, caso contrário, finaliza-se o algoritmo com os clusters definidos.
Escolhendo a quantidade certa de K
Diante da explicação do método, fica claro a necessidade de escolher um K ótimo. A gráfico de relação entre o número de K de sua alteração no centróide segue um formate de "cotovelo", e a partir daí se originou o Elbow Method, que analisa quão significativa foi a iteração usando determinado K, e conforme esse K aumenta, a significância diminui, e quando esta passa a se tornar irrelevante, o algoritmo reconhece como este valor sendo o valor ótimo para K.