Algoritmos de clustering

Vamos ver rapidamente os tipos de algoritmos de clustering e quando escolher cada tipo.

Ao escolher um algoritmo de clustering, considere se o algoritmo é dimensionado para seu conjunto de dados. Os conjuntos de dados no machine learning podem ter milhões de exemplos, mas nem todos os algoritmos de clustering são escalonados com eficiência. Muitos algoritmos de clustering funcionam calculando a semelhança entre todos os pares de exemplos. Isso significa que o ambiente de execução aumenta à medida que o quadrado do número de exemplos \(n\), representado como \(O(n^2)\) em notação de complexidade. \(O(n^2)\) Os algoritmos não são práticos quando o número de exemplos é em milhões. O foco deste curso é o algoritmo k-means, que tem uma complexidade de \(O(n)\), o que significa que o algoritmo é escalonado de maneira linear com \(n\).

Tipos de clustering

Há várias abordagens para o clustering. Para ver uma lista completa, consulte Uma pesquisa abrangente sobre algoritmos de clustering Xu, D. e Tian, Y. Dados pendentes Sci. (2015) 2: 165. Cada abordagem é mais adequada para uma distribuição de dados específica. Veja a seguir uma breve discussão sobre quatro abordagens comuns, com foco em clustering baseado em centroide usando k-means.

Clustering baseado em centroide

O clustering baseado em centroide organiza os dados em clusters não hierárquicos, ao contrário do clustering hierárquico definido abaixo. O k-means é o algoritmo de clustering baseado em centroide mais usado. Os algoritmos baseados em centroide são eficientes, mas sensíveis às condições iniciais e outliers. O foco deste curso é k-means, porque ele é um algoritmo de clustering eficiente, eficaz e simples.

Exemplos agrupados em clusters usando clustering baseado em centroide.
           As linhas mostram bordas entre clusters.
Figura 1: exemplo de clustering baseado em centroide.

Clustering baseado em densidade

O clustering baseado em densidade conecta áreas de alta densidade de exemplos em clusters. Isso permite distribuições de forma arbitrária, desde que as áreas densas possam ser conectadas. Esses algoritmos têm dificuldade com dados de densidades variadas e dimensões altas. Além disso, por padrão, esses algoritmos não atribuem outliers aos clusters.

Exemplos agrupados em dois clusters usando clustering baseado em densidade. Não é possível separar os clusters de forma linear.
Figura 2: exemplo de clustering baseado em densidade.

Clustering baseado em distribuição

Essa abordagem de clustering pressupõe que os dados são compostos de distribuições, como distribuições gaussianas. Na Figura 3, o algoritmo baseado em distribuição agrupa os dados em três distribuições gaussianas. À medida que a distância do centro da distribuição aumenta, a probabilidade de que um ponto pertence à distribuição diminui. As faixas mostram Essa diminuição na probabilidade. Quando você não souber o tipo de distribuição nos seus dados, use um algoritmo diferente.

Exemplos agrupados com clustering baseado em distribuição. O sombreamento da densidade de exemplos em cada cluster mostra como os clusters são mapeados para distribuições.
Figura 3: exemplo de clustering baseado em distribuição.

Clustering hierárquico

O clustering hierárquico cria uma árvore de clusters. O clustering hierárquico, que não é surpreendente, é adequado para dados hierárquicos, como taxonomias. Consulte um exemplo de Comparação de 61 genômicos da colisão de esquirichia sequencial de Oksana Lukjancenko, Trudy Wassenaar e Dave Ussery. Além disso, outra vantagem é que qualquer número de clusters pode ser escolhido cortando a árvore no nível certo.

Animais em cluster usando uma árvore hierárquica.
Figura 4: exemplo de uma árvore hierárquica de animais em cluster.