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:

before-after


O processo básico do algoritmo, passa por 5 passos:

  1. 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.

  2. Seleciona a posição dos K centróides

centroids

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.

  1. Atribui cada ponto ao seu centróide mais próximo

points

Cada ponto no seu dataset será atribuído ao centróide mais próximo.

  1. Recalcula a posição do centróide de cada cluster

recalc

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.

  1. Recalcula a atribuição de cada ponto ao seu centróide mais próximo

trecalc

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.