Clustering – Agrupamento

1.2 – Nao Supervisionado
1.2.1 – Clustering – Agrupamento
1.2.1.1 – K-Means, DBSCAN, Hierarchical Clustering, Gaussian Mixture Models
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura

O que é clustering não supervisionado

Clustering é uma técnica de aprendizado não supervisionado. O algoritmo não utiliza rótulos ou respostas predefinidas. Seu objetivo consiste em agrupar dados similares em clusters. Cada cluster contém elementos parecidos entre si. Por exemplo, podemos agrupar clientes por comportamento de compra. Diferentemente da classificação, aqui não há treinamento com exemplos rotulados. O algoritmo descobre padrões escondidos nos dados. Essa abordagem mostra-se muito útil para explorar conjuntos desconhecidos. Primeiramente, biologia, marketing e visão computacional usam amplamente esta técnica.

Primeiramente, o algoritmo define uma medida de similaridade. Em seguida, ele organiza os dados em grupos coesos. Além disso, os clusters devem permanecer bem separados uns dos outros. Por conseguinte, pontos dentro do mesmo cluster são próximos. Contudo, pontos de clusters diferentes são distantes segundo a métrica. Uma vantagem consiste em não exigir conhecimento prévio. No entanto, a interpretação dos clusters fica a cargo do analista. Muitas vezes, é preciso testar diferentes configurações. Portanto, o resultado final pode revelar insights surpreendentes.

Arquitetura do modelo k-means

O algoritmo k-means destaca-se como o mais popular para clustering. Sua arquitetura mostra-se simples e baseada em centróides. Primeiramente, escolhe-se o número K de clusters desejado. Depois, inicializamos K centróides aleatoriamente. Cada ponto atribui-se ao centróide mais próximo. Essa atribuição usa a distância euclidiana como métrica. A fórmula da distância entre dois pontos é: \(d(p,q) = \sqrt{\sum_{i=1}^{n} (p_i – q_i)^2}\). Após a atribuição, recalculamos os centróides. O novo centróide corresponde à média dos pontos do cluster: \(c_k = \frac{1}{|C_k|} \sum_{x \in C_k} x\). Consequentemente, repetimos esse processo até a convergência.

A convergência ocorre quando os centróides não mudam mais. O algoritmo converge garantidamente, mas para um mínimo local. Por isso, diferentes inicializações podem produzir resultados distintos. Uma técnica comum envolve o k-means++ para melhor inicialização. Assim, ela espalha os centróides iniciais de forma inteligente. A complexidade do algoritmo mostra-se linear no número de pontos. Isso o torna escalável para grandes conjuntos de dados. Contudo, ele assume que os clusters são esféricos. Portanto, para formas complexas, outros algoritmos são mais adequados.

Hiperparâmetros e fórmulas matemáticas

O principal hiperparâmetro do k-means é o número K. Escolhemos este valor antes da execução do algoritmo. Um método comum envolve o método do cotovelo (elbow method). Ele plota a inércia para diferentes valores de K. A inércia representa a soma das distâncias quadradas intra-cluster: \(inércia = \sum_{k=1}^{K} \sum_{x \in C_k} ||x – c_k||^2\). Quando K aumenta, a inércia sempre diminui. Assim, o ponto de cotovelo indica um bom número de clusters. Outro hiperparâmetro é o número máximo de iterações. Além disso, ajustamos a tolerância de convergência.

A inicialização dos centróides representa outro fator importante. O parâmetro n_init define quantas execuções diferentes realizamos. Portanto, mantemos a melhor execução (menor inércia) ao final. A fórmula da silhueta avalia a qualidade do clustering: \(s(i) = \frac{b(i) – a(i)}{\max(a(i), b(i))}\). Nessa expressão, \(a(i)\) representa a distância média intra-cluster. \(b(i)\) indica a distância média para o cluster vizinho mais próximo. O valor da silhueta varia entre -1 e 1. Consequentemente, valores próximos de 1 indicam clusters bem separados. Essa métrica mostra-se muito útil para validar o resultado.

Enunciado do exemplo com flor íris

Você recebeu o dataset das flores Íris sem os rótulos das espécies. Seu objetivo consiste em agrupar as flores em clusters similares. Use o algoritmo k-means para encontrar grupos naturais. As características disponíveis incluem quatro medidas das flores. Primeiramente, você não sabe quantas espécies existem nos dados. Portanto, determine o número ideal de clusters usando o método do cotovelo. Depois, visualize os clusters em um gráfico 2D. Use as duas primeiras componentes principais para reduzir dimensão. Além disso, exiba um gráfico de silhueta para avaliar a qualidade. O código abaixo resolve completamente este enunciado.

Ele executa no Google Colab sem necessidade de ajustes. Boa prática! O clustering revela estruturas escondidas.

O código corrigido separa corretamente as coordenadas X e Y. A função pca.transform() projeta os centróides no mesmo espaço. Desenhamos os centróides como X vermelhos sobre os clusters. O método do cotovelo confirma que K=3 representa o número ideal. O gráfico de silhueta mostra boa separação entre os grupos. A silhueta média global próxima de 0,5 indica qualidade razoável. Por fim, o índice de Rand ajustado compara com as espécies reais. Valores acima de 0,7 mostram que o clustering funcionou bem. Além disso, exibimos a composição de cada cluster no final do código. Parabéns! Você acabou de realizar aprendizado não supervisionado.

Deixe um comentário