Algoritmos de clustering

Os conjuntos de dados de aprendizado de máquina podem ter milhões de exemplos, mas nem todos os algoritmos de agrupamento são escalonados de maneira eficiente. Muitos algoritmos de agrupamento calculam a similaridade entre todos os pares de exemplos, o que significa que o tempo de execução aumenta conforme o quadrado do número de exemplos \(n\), indicado como \(O(n^2)\) na notação de complexidade.Os algoritmos \(O(n^2)\) não são práticos para conjuntos de dados com milhões de exemplos.

O algoritmo k-means tem uma complexidade de \(O(n)\), o que significa que o algoritmo é dimensionado linearmente com \(n\). Este algoritmo será o foco deste curso.

Tipos de agrupamento

Para conferir uma lista completa de diferentes abordagens de agrupamento, consulte A Comprehensive Survey of Clustering Algorithms (Xu, D., 2005). & Tian, Y. Ann. Data. Sci. (2015) 2: 165. Cada abordagem é mais adequada para uma distribuição de dados específica. Este curso discute brevemente quatro abordagens comuns.

Agrupamento baseado em centroide

O centroide de um cluster é a média aritmética de todos os pontos no cluster. O clustering com base no centroide organiza os dados em clusters não hierárquicos. Os algoritmos de agrupamento baseados em centroide são eficientes, mas sensíveis a condições iniciais e valores discrepantes. Entre eles, o k-means é o mais usado. Ela exige que os usuários definam o número de centroides, k, e funciona bem com clusters de tamanho aproximadamente igual.

Exemplos agrupados em clusters usando a clusterização baseada em centroide.
           As linhas mostram as fronteiras entre os clusters.
Figura 1: exemplo de agrupamento baseado em centroide.

Clustering baseado em densidade

O agrupamento com base na densidade conecta áreas contíguas de alta densidade de exemplos em clusters. Isso permite a descoberta de qualquer número de clusters de qualquer forma. Os valores discrepantes não são atribuídos a clusters. Esses algoritmos têm dificuldade com clusters de densidades diferentes e dados com dimensões altas.

Exemplos agrupados em dois clusters usando o agrupamento baseado em densidade.
      Os clusters não são separáveis linearmente.
Figura 2: exemplo de agrupamento baseado em densidade.

Agrupamento baseado em distribuição

Essa abordagem de agrupamento pressupõe que os dados sejam compostos de distribuições probabilísticas, 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 um ponto pertencer à distribuição diminui. As faixas mostram essa diminuição na probabilidade. Quando você não se sentir confortável em assumir uma distribuição subjacente específica dos dados, use um algoritmo diferente.

Exemplos agrupados usando o agrupamento 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 agrupamento baseado em distribuição.

Clustering hierárquico

O clustering hierárquico cria uma árvore de clusters. O agrupamento hierárquico é adequado para dados hierárquicos, como taxonomias. Confira um exemplo em Comparison of 61 Sequenced Escherichia coli Genomes de Oksana Lukjancenko, Trudy Wassenaar e Dave Ussery. É possível escolher qualquer número de clusters cortando a árvore no nível certo.

Animais agrupados usando uma árvore hierárquica.
Figura 4: exemplo de uma árvore hierárquica que agrupa animais.