Pular para o conteúdo principal
InicioBlogAprendizado de máquina

Agrupamento no aprendizado de máquina: 5 Algoritmos de agrupamento essenciais

Saiba o que é clustering e como ele é usado no aprendizado de máquina. Veja os diferentes tipos de agrupamento no aprendizado de máquina e confira algumas perguntas frequentes.
abr. de 2024  · 15 min leer

Introdução

O agrupamento é uma técnica de aprendizado de máquina não supervisionada com muitas aplicações nas áreas de reconhecimento de padrões, análise de imagens, análise de clientes, segmentação de mercado, análise de redes sociais e muito mais. Uma ampla gama de setores usa clustering, desde companhias aéreas até o setor de saúde e muito mais. 

É um tipo de aprendizado não supervisionado, o que significa que não precisamos de dados rotulados para os algoritmos de clustering; essa é uma das maiores vantagens do clustering em relação a outros tipos de aprendizado supervisionado, como a classificação. Neste tutorial sobre clustering, você aprenderá:

  • O que é clustering?
  • Aplicativos comerciais/casos de uso de clustering
  • 5 algoritmos de agrupamento essenciais
    • K-Means
    • MeanShift
    • DBSCAN
    • Agrupamento hierárquico
    • BIRCH
  • Perguntas frequentes comuns sobre clustering

O que é clustering?

Clustering é o processo de organizar um grupo de objetos de forma que os objetos do mesmo grupo (denominado cluster) sejam mais semelhantes entre si do que com os objetos de qualquer outro grupo.  Os profissionais de dados geralmente usam o clustering na fase de Análise Exploratória de Dados para descobrir novas informações e padrões nos dados. Como o clustering é um aprendizado de máquina não supervisionado, ele não requer um conjunto de dados rotulados. 

O clustering em si não é um algoritmo específico, mas a tarefa geral a ser resolvida. Você pode atingir esse objetivo usando vários algoritmos que diferem significativamente em sua compreensão do que constitui um cluster e como encontrá-los de forma eficiente. 

Mais adiante neste tutorial, compararemos os resultados de diferentes algoritmos de agrupamento, seguidos de uma discussão detalhada de cinco algoritmos de agrupamento essenciais e populares usados no setor atualmente. Embora os algoritmos sejam essencialmente matemáticos, este tutorial de agrupamento tem como objetivo desenvolver uma compreensão intuitiva dos algoritmos em vez de uma formulação matemática.

Principais critérios de sucesso para a análise de clustering

O agrupamento, diferentemente dos casos de uso de aprendizado supervisionado, como classificação ou regressão, não pode ser totalmente automatizado de ponta a ponta. Em vez disso, é um processo iterativo de descoberta de informações que requer conhecimento especializado e julgamento humano, usado com frequência para fazer ajustes nos dados e nos parâmetros do modelo para alcançar o resultado desejado. 

O mais importante é que, como o clustering é um aprendizado não supervisionado e não usa dados rotulados, não podemos calcular métricas de desempenho como precisão, AUC, RMSE etc. para comparar diferentes algoritmos ou técnicas de pré-processamento de dados. Como resultado, isso torna a avaliação do desempenho dos modelos de agrupamento realmente desafiadora e subjetiva. 

Os principais critérios de sucesso nos modelos de clustering giram em torno de:

  • É interpretável?
  • O resultado do clustering é útil para os negócios?
  • Você aprendeu novas informações ou descobriu novos padrões nos dados que não conhecia antes do agrupamento?

Criando a intuição por trás do clustering

Antes de nos aprofundarmos nos detalhes algorítmicos, vamos apenas criar uma intuição por trás do agrupamento usando um exemplo de brinquedo de conjuntos de dados de frutas. Digamos que temos uma enorme coleção de conjuntos de dados de imagens contendo três frutas (i) morangos, (ii) peras e (iii) maçãs. 

No conjunto de dados, todas as imagens estão misturadas e seu caso de uso é agrupar frutas semelhantes, ou seja, criar três grupos com cada um deles contendo um tipo de fruta. Isso é exatamente o que um algoritmo de agrupamento fará. 

algoritmo de agrupamento

Fonte da imagem: https://static.javatpoint.com/tutorial/machine-learning/images/clustering-in-machine-learning.png

Aplicativos comerciais de clustering

O clustering é uma técnica muito poderosa e tem amplas aplicações em vários setores, desde a mídia até a área da saúde, da manufatura aos setores de serviços e em qualquer lugar onde haja grandes quantidades de dados. Vamos dar uma olhada em alguns casos práticos de uso:

Segmentação de clientes

Os clientes são categorizados com o uso de algoritmos de agrupamento de acordo com seu comportamento de compra ou interesses para desenvolver campanhas de marketing focadas. 

Imagine que você tenha 10 milhões de clientes e queira desenvolver campanhas de marketing personalizadas ou focadas. É improvável que você desenvolva campanhas de marketing de 10 milhões, então o que fazemos? Poderíamos usar o clustering para agrupar 10 milhões de clientes em 25 clusters e, em seguida, criar 25 campanhas de marketing em vez de 10 milhões.

Segmentação de clientes

Fonte da imagem: https://miro.medium.com/max/845/1*rFATWK6tWBrDJ1o1rzEZ8w.png

Agrupamento de varejo

Há muitas oportunidades de agrupamento de negócios de varejo. Por exemplo, você pode coletar dados sobre cada loja e agrupar no nível da loja para gerar insights que podem informar quais locais são semelhantes entre si com base em atributos como tráfego de pessoas, vendas médias da loja, número de SKUs etc. 

Outro exemplo poderia ser o agrupamento em um nível de categoria. No diagrama abaixo, temos oito lojas. Cores diferentes representam clusters diferentes. Há quatro clusters neste exemplo. 

Observe que a categoria de desodorantes na Store 1 é representada pelo cluster vermelho, enquanto a categoria de desodorantes na Store 2 é representada pelo cluster azul. Isso mostra que a Store 1 e a Store 2 têm mercados-alvo completamente diferentes para a categoria de desodorantes.

Grupo de varejo

Fonte da imagem:https://www.dotactiv.com/hs-fs/hubfs/Category-based%20clustering.png?width=1038&height=557&name=Category-based%20clustering.png

Agrupamento em cuidados clínicos / gerenciamento de doenças

A área de saúde e ciências clínicas é novamente uma das áreas repletas de oportunidades de agrupamento que são de fato muito impactantes no campo. Um exemplo disso é a pesquisa publicada por Komaru & Yoshida et al. 2020, onde coletaram dados demográficos e laboratoriais de 101 pacientes e depois os segmentaram em três grupos. 

Cada cluster foi representado por condições diferentes. Por exemplo, o cluster 1 tem pacientes com baixo número de leucócitos e PCR. O Grupo 2 tem pacientes com BMP e soro altos, e o Grupo 3 tem pacientes com soro baixo. Cada grupo representa uma trajetória de sobrevivência diferente, considerando a mortalidade em um ano após a hemodiálise.

Agrupamento clínico

Fonte da imagem: https://els-jbs-prod-cdn.jbs.elsevierhealth.com/cms/attachment/da4cb0c9-0a86-4702-8a78-80ffffcf1f9c/fx1_lrg.jpg

Segmentação de imagens

A segmentação de imagens é a classificação de uma imagem em diferentes grupos. Muitas pesquisas foram feitas na área de segmentação de imagens usando agrupamento. Esse tipo de agrupamento é útil se você quiser isolar objetos em uma imagem para analisar cada objeto individualmente e verificar o que ele é. 

No exemplo abaixo, o lado esquerdo representa a imagem original e o lado direito é o resultado do algoritmo de agrupamento. Você pode ver claramente que há 4 clusters, que são 4 objetos diferentes na imagem, determinados com base nos pixels (tigre, grama, água e areia).
Segmentação de imagem

Quer dar um salto em sua carreira? Domine as habilidades essenciais para conseguir um emprego como cientista de aprendizado de máquina? Confira esses cursos incríveis do DataCamp Cientista de aprendizado de máquina com Python e Cientista de aprendizado de máquina com R

Comparação de diferentes algoritmos de agrupamento

Há 10 algoritmos de agrupamento não supervisionados implementados no scikit-learn, uma biblioteca popular de aprendizado de máquina em Python. Há diferenças fundamentais subjacentes na forma como cada algoritmo determina e atribui clusters no conjunto de dados. 

As diferenças subjacentes na modalidade matemática desses algoritmos se resumem a quatro aspectos nos quais podemos comparar e contrastar esses algoritmos:

  • Parâmetros necessários para o modelo 
  • Escalabilidade 
  • Casos de uso, 
  • Geometria, ou seja, a métrica usada para o cálculo de distâncias. 

Vamos nos concentrar no resultado desses algoritmos. No diagrama abaixo, cada coluna representa uma saída de um algoritmo de agrupamento diferente, como KMeans, Affinity Propagation, MeanShift, etc. Há um total de 10 algoritmos que são treinados no mesmo conjunto de dados.

Alguns algoritmos produziram o mesmo resultado. Observe que o Agglomerative Clustering, o DBSCAN, o OPTICS e o Spectral Clustering resultaram nos mesmos clusters. 

No entanto, se você observar e comparar o resultado do KMeans com o resultado do algoritmo MeanShift, perceberá que ambos os algoritmos produziram resultados diferentes. No caso do KMeans, há apenas dois grupos (clusters: azul e laranja), enquanto que, no caso do MeanShift, há três, ou seja, azul, verde e laranja. 

Comparação de diferentes clusters

Fonte da imagem: https://scikit-learn.org/stable/_images/sphx_glr_plot_cluster_comparison_001.png

Infelizmente (ou felizmente), não há resposta certa ou errada no Clustering. Teria sido muito simples determinar e fazer uma declaração como "O algoritmo X tem o melhor desempenho aqui". 

Isso não é possível e é por esse motivo que o clustering é uma tarefa muito desafiadora. 

Em última análise, qual algoritmo funciona melhor não depende de nenhuma métrica facilmente mensurável, mas sim da interpretação e de quão útil é o resultado para o caso de uso em questão.

5 Algoritmos de agrupamento essenciais

K-Means

O algoritmo de agrupamento K-Means é facilmente o algoritmo mais popular e amplamente usado para tarefas de agrupamento. Isso se deve principalmente à intuição e à facilidade de implementação. É um algoritmo baseado em centroide, no qual o usuário deve definir o número necessário de clusters que deseja criar. 

Isso normalmente vem de um caso de uso comercial ou da tentativa de valores diferentes para o número de clusters e, em seguida, da avaliação do resultado. 

O K-Means clustering é um algoritmo iterativo que cria clusters não sobrepostos, o que significa que cada instância em seu conjunto de dados só pode pertencer a um cluster exclusivamente. A maneira mais fácil de obter a intuição do algoritmo K-Means é entender as etapas junto com o diagrama de exemplo abaixo. Você também pode obter uma descrição detalhada do processo em nossos tutoriais K-Means Clustering em Python e K-Means Clustering em R

  1. O usuário especifica o número de clusters.
  2. Inicialize os centroides aleatoriamente com base no número de clusters. No diagrama abaixo, na Iteração 1, observe que três centroides são inicializados aleatoriamente nas cores azul, vermelha e verde.
  3. Calcule a distância entre os pontos de dados e cada centroide e atribua cada ponto de dados aos centroides mais próximos.
  4. Recalcule a média do centroide com base em todos os pontos de dados atribuídos, e isso mudará a posição do centroide, como você pode ver na Iteração 2 - 9, até que ele finalmente convirja.
  5. A iteração continua até que não haja alteração na média do centroide ou até que o parâmetro max_iter seja atingido, que é o número máximo de iterações definido pelo usuário durante o treinamento. No scikit-learn, o max_iter é definido por padrão como 300.

K-means

Fonte da imagem: https://www.learnbymarketing.com/wp-content/uploads/2015/01/method-k-means-steps-example.png

MeanShift

Ao contrário do algoritmo K-Means, o algoritmo MeanShift não requer a especificação do número de clusters. O próprio algoritmo determina automaticamente o número de clusters, o que é uma grande vantagem em relação ao K-Means se você não tiver certeza dos padrões nos dados. 

O MeanShift também se baseia em centroides e atribui iterativamente cada ponto de dados a clusters. O caso de uso mais comum do clustering MeanShift são as tarefas de segmentação de imagens.

O algoritmo MeanShift é baseado na estimativa de densidade do kernel. Semelhante ao algoritmo K-Means, os algoritmos MeanShift atribuem iterativamente cada ponto de dados ao centroide de cluster mais próximo, que é inicializado aleatoriamente, e cada ponto é movido iterativamente no espaço com base no local em que se encontra a maioria dos pontos, ou seja, o modo (modo é a maior densidade de pontos de dados na região, no contexto do MeanShift). 

É por isso que o algoritmo MeanShift também é conhecido como algoritmo de busca de modo. As etapas do algoritmo MeanShift são as seguintes:

  • Escolha qualquer ponto aleatório e crie uma janela ao redor desse ponto aleatório.
  • Calcule a média de todos os pontos dentro dessa janela.
  • Desloque a janela seguindo a direção do modo. 
  • Repita as etapas até a convergência.

Deslocamento médio

Fonte da imagem: https://www.researchgate.net/publication/326242239/figure/fig3/AS:645578044231681@1530929208053/Intuitive-description-of-the-mean-shift-procedure-find-the-densest-regions-in-the.png

DBSCAN

DBSCAN ou Density-Based Spatial Clusteringof Applicationswith Noiseé um algoritmo de agrupamento não supervisionado que trabalha com a premissa de que os agrupamentos são espaços densos na região separados por regiões de densidade mais baixa. 

A maior vantagem desse algoritmo em relação ao K-Means e ao MeanShift é que ele é robusto em relação aos outliers, o que significa que não incluirá pontos de dados outliers em nenhum cluster. 

Os algoritmos DBSCAN exigem apenas dois parâmetros do usuário: 

  • O raio do círculo a ser criado em torno de cada ponto de dados, também conhecido como `epsilon`
  • minPoints que define o número mínimo de pontos de dados necessários dentro desse círculo para que o ponto de dados seja classificado como um ponto central.

Cada ponto de dados é cercado por um círculo com um raio de épsilon, e o DBSCAN os identifica como sendo um ponto central, um ponto de borda ou um ponto de ruído. Um ponto de dados é considerado um ponto central se o círculo que o circunda tiver um número mínimo de pontos especificado pelo parâmetro minPoints. 

É considerado um ponto de borda se o número de pontos for menor do que o mínimo exigido, e é considerado ruído se não houver pontos de dados adicionais localizados dentro de um raio epsilon de qualquer ponto de dados. Os pontos de dados de ruído não são categorizados em nenhum cluster (basicamente, eles são discrepantes).

Alguns dos casos de uso comuns do algoritmo de agrupamento DBSCAN são:

  • Seu desempenho é excelente na separação de clusters de alta densidade em relação aos de baixa densidade;
  • Funciona muito bem em conjuntos de dados não lineares; e
  • Ele pode ser usado para detecção de anomalias, pois separa os pontos de ruído e não os atribui a nenhum cluster.

Comparando os algoritmos DBSCAN e K-Means, as diferenças mais comuns são: 

  • O algoritmo K-Means agrupa todas as instâncias nos conjuntos de dados, enquanto o DBSCAN não atribui pontos de ruído (outliers) a um agrupamento válido
  • O K-Means tem dificuldade com clusters não globais, enquanto o DBSCAN pode lidar com isso sem problemas
  • O algoritmo K-Means pressupõe que todos os pontos de dados do conjunto de dados são provenientes de uma distribuição gaussiana, enquanto o DBSCAN não faz nenhuma suposição sobre os dados.

Você pode saber mais sobre o DBSCAN em Python em nosso tutorial. 

DBSCAN

Fonte da imagem: https://miro.medium.com/proxy/1*tc8UF-h0nQqUfLC8-0uInQ.gif

Agrupamento hierárquico

O clustering hierárquico é um método de clustering que cria uma hierarquia de clusters. Há dois tipos desse método. 

  • Aglomerativo: Essa é uma abordagem de baixo para cima, em que cada observação é tratada como seu próprio cluster no início e, à medida que avançamos de baixo para cima, cada observação é mesclada em pares, e os pares são mesclados em clusters. 
  • Divisivo: Essa é uma abordagem "de cima para baixo": todas as observações começam em um cluster, e as divisões são realizadas recursivamente à medida que nos movemos de cima para baixo.

Quando se trata de analisar dados de redes sociais, o agrupamento hierárquico é, de longe, o método mais comum e popular de agrupamento. Os nós (ramificações) no gráfico são comparados entre si, dependendo do grau de similaridade existente entre eles. Ao vincular grupos menores de nós que estão relacionados uns aos outros, é possível criar agrupamentos maiores.

A maior vantagem do clustering hierárquico é que ele é fácil de entender e implementar. Normalmente, o resultado desse método de agrupamento é analisado em uma imagem como a abaixo. Ele é chamado de dendrograma.

Você pode saber mais sobre clustering hierárquico e clustering K-Means em nosso tutorial sobre clustering hierárquico em Python

Agrupamento hierárquico

Fonte da imagem: https://www.researchgate.net/profile/Rahmat-Widia-Sembiring/publication/48194320/figure/fig1/AS:307395533262848@1450300214331/Example-of-a-dendrogram-from-hierarchical-clustering.png

BIRCH

BIRCH significa Balanced Iterative Hierarchical Based Clustering (agrupamento baseado em hierarquia iterativa equilibrada). Ele é usado em conjuntos de dados muito grandes, nos quais o K-Means não pode ser dimensionado de forma prática. O algoritmo BIRCH divide grandes dados em pequenos clusters e tenta reter a maior quantidade possível de informações. Os grupos menores são então agrupados para um resultado final, em vez de agrupar diretamente os grandes conjuntos de dados. 

O BIRCH é frequentemente usado para complementar outros algoritmos de agrupamento, gerando um resumo das informações que os outros algoritmos de agrupamento podem utilizar. Os usuários precisam definir o número de clusters para treinar o algoritmo BIRCH, da mesma forma que o definimos no K-Means.

Uma das vantagens de usar o BIRCH é que ele pode agrupar pontos de dados multidimensionais de forma progressiva e dinâmica. Isso é feito para criar clusters da mais alta qualidade em um determinado limite de memória e tempo. Na maioria dos casos, o BIRCH só precisa fazer uma pesquisa no banco de dados, o que o torna escalável. 

O caso de uso mais comum do algoritmo de agrupamento BIRCH é que ele é uma alternativa eficiente em termos de memória para o KMeans, que pode ser usado para agrupar grandes conjuntos de dados que não podem ser tratados pelo KMeans devido a limitações de memória ou computação.

Conclusão

O agrupamento é uma técnica de aprendizado de máquina muito útil, mas não é tão simples quanto alguns dos casos de uso de aprendizado supervisionado, como classificação e regressão. Isso ocorre principalmente porque a avaliação de desempenho e a avaliação da qualidade do modelo são difíceis, pois há alguns parâmetros críticos, como o número de clusters, que o usuário deve definir corretamente para obter resultados significativos. 

No entanto, há muitos casos de uso de clustering em uma ampla gama de setores, e essa é uma habilidade importante até mesmo para cientistas de dados, engenheiros de aprendizado de máquina e analistas de dados. 

Se você quiser saber mais sobre clustering e aprendizado de máquina não supervisionado e aprender a implementação usando as linguagens Python e R, os cursos abaixo podem ajudá-lo a progredir:

Perguntas frequentes (FAQs)

O clustering é um aprendizado de máquina não supervisionado ou supervisionado?

O agrupamento é uma técnica de aprendizado de máquina não supervisionada. Ele não requer dados rotulados para treinamento.

Precisamos de dados rotulados para o clustering?

Não, não precisamos de dados rotulados para algoritmos de agrupamento. Se você tiver dados rotulados, precisará de um algoritmo de classificação supervisionado.

Posso fazer clustering em dados categóricos?

Sim, assim como no aprendizado de máquina supervisionado, se você tiver recursos categóricos em seus dados, precisará codificá-los com técnicas como a codificação de um ponto. Alguns algoritmos, como o K-Modes, foram projetados para aceitar dados categóricos diretamente, sem nenhuma codificação.

O clustering é aprendizado de máquina?

Sim, o clustering é aprendizado de máquina. Especificamente, o aprendizado de máquina não supervisionado.

O clustering é uma análise descritiva ou preditiva?

O clustering pode ser usado para análises descritivas e preditivas. É mais comumente usado em torno da Análise Exploratória de Dados, que é uma análise descritiva.

Podemos medir o desempenho dos algoritmos de agrupamento?

Não há uma maneira segura de medir o desempenho dos algoritmos de agrupamento, como ocorre no aprendizado de máquina supervisionado (AUC, Precisão, R2, etc.). A qualidade do modelo depende da interpretação do resultado e do caso de uso. No entanto, existem algumas métricas alternativas, como Homogeneity Score, Silhouette Score, etc.

Podemos usar o agrupamento para engenharia de recursos no aprendizado de máquina supervisionado?

Sim, os algoritmos de clustering atribuem rótulos em termos de grupos em seu conjunto de dados. No final das contas, trata-se de uma nova coluna categórica em seu conjunto de dados. Portanto, o agrupamento é frequentemente usado para engenharia de recursos em tarefas de aprendizado supervisionado.

Temas

Cursos de aprendizado de máquina

Course

Understanding Machine Learning

2 hr
204.3K
An introduction to machine learning with no coding involved.
See DetailsRight Arrow
Start Course
Ver maisRight Arrow
Relacionado

blog

O que é um algoritmo?

Aprenda algoritmos e sua importância no aprendizado de máquina. Entenda como os algoritmos resolvem problemas e executam tarefas com etapas bem definidas.
DataCamp Team's photo

DataCamp Team

11 min

blog

Introdução ao aprendizado não supervisionado

Saiba mais sobre o aprendizado não supervisionado, seus tipos - agrupamento, mineração de regras de associação e redução de dimensionalidade - e como ele se difere do aprendizado supervisionado.
Kurtis Pykes 's photo

Kurtis Pykes

9 min

Machine Learning Concept

blog

O que é aprendizado de máquina? Definição, tipos, ferramentas e muito mais

Descubra tudo o que você precisa saber sobre o aprendizado de máquina em 2023, incluindo seus tipos, usos, carreiras e como começar no setor.
Matt Crabtree's photo

Matt Crabtree

14 min

blog

8 modelos de aprendizado de máquina explicados em 20 minutos

Descubra tudo o que você precisa saber sobre os tipos de modelos de aprendizado de máquina, inclusive para que eles são usados e exemplos de como implementá-los.
Natassha Selvaraj's photo

Natassha Selvaraj

25 min

tutorial

Tutorial do K-Means Clustering no R

Saiba o que é o k-means e descubra por que ele é um dos algoritmos de agrupamento mais usados na ciência de dados
Eugenia Anello's photo

Eugenia Anello

17 min

tutorial

Agrupamento hierárquico em R

O agrupamento é a forma mais comum de aprendizado não supervisionado, um tipo de algoritmo de aprendizado de máquina usado para fazer inferências a partir de dados não rotulados.
DataCamp Team's photo

DataCamp Team

15 min

See MoreSee More