Executar o algoritmo de clustering

Em machine learning, às vezes você encontra conjuntos de dados que podem ter milhões de exemplos. Algoritmos de ML precisam ser escalonados com eficiência para esses grandes conjuntos de dados. No entanto, muitos algoritmos de clustering não são escalonados porque precisam calcular a semelhança entre todos os pares de pontos. Isso significa que o tempo de execução aumenta como o quadrado do número de pontos, indicado como \(O(n^2)\). Por exemplo, os algoritmos de clustering hierárquicos aglomerativos ou divisivos analisam todos os pares de pontos e têm complexidades de \(O(n^2 log(n))\) e \(O(n^2)\), respectivamente.

O foco deste curso é o k-means, porque ele é escalonado como \(O(nk)\), em que \(k\) é o número de clusters. O k-means agrupa os pontos em \(k\) clusters minimizando as distâncias entre os pontos e o centroide do cluster (como mostrado na Figura 1 abaixo). O centroide de um cluster é a média de todos os pontos dele.

Como mostrado, o k-means encontra clusters circulares. Conceitualmente, isso significa que k-means trata os dados com eficiência como compostos de várias distribuições aproximadamente circulares e tenta encontrar clusters correspondentes a essas distribuições. Na realidade, os dados contêm outliers e podem não se encaixar nesse modelo.

Antes de executar k-means, escolha o número de clusters, \(k\). Inicialmente, começa com um palpite para \(k\). Mais tarde, falaremos sobre como refinar esse número.

Algoritmo de clustering k-means

Para agrupar dados em clusters \(k\) , k-means segue as etapas abaixo:

Gráfico de k-means na inicialização
Figura 1: k-means na inicialização.

Etapa um

O algoritmo escolhe aleatoriamente um centroide para cada cluster. Em nosso exemplo, escolhemos um \(k\) de 3. Portanto, o algoritmo escolhe aleatoriamente três centroides.

Clusters iniciais
Figura 2: clusters iniciais.

Etapa dois

O algoritmo atribui cada ponto ao centroide mais próximo para conseguir \(k\) clusters iniciais.

Recomputação de centroides
Figura 3: computação de centroides.

Etapa três

Para cada cluster, o algoritmo recalcula o centroide calculando a média de todos os pontos do cluster. As mudanças nos centroides são mostradas na Figura 3 pelas setas. Como os centroides mudam, o algoritmo reatribui os pontos ao centroide mais próximo. A Figura 4 mostra os novos clusters após a reatribuição.

Clusters após reatribuição
Figura 4: clusters após a reatribuição.

Etapa quatro

O algoritmo repete o cálculo de centroides e a atribuição de pontos até que os pontos parem de alterar os clusters. Ao agrupar conjuntos de dados grandes, você interrompe o algoritmo antes de alcançar a convergência, usando outros critérios.

Você não precisa entender a matemática por trás do k-means neste curso. No entanto, se estiver curioso, veja abaixo a prova matemática.

Como as posições centroide são escolhidas inicialmente aleatoriamente, k-means pode retornar resultados significativamente diferentes em execuções sucessivas. Para resolver esse problema, execute k-means várias vezes e escolha o resultado com as melhores métricas de qualidade. Falaremos sobre as métricas de qualidade mais adiante neste curso. Você precisará de uma versão avançada da k-means para escolher melhores posições centrais.