Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

[Dúvida] Além do K-Means, o que mais posso usar para cluster?

Fui apresentar este exemplo para uma turma de pós-graduação e me perguntaram: Além do K-Means, quais outros algoritmos existem para este tipo de tarefa?

Eu tentei explicar que existem vários, dentre os mais populares: Fuzzy K-Means, K-modes e K-Medoid. Mas não sabia distinguir entre eles qual deveria usar em cada situação.

Podem me ajudar? obrigado.

7 respostas
solução!

Opa, Fabricio! Como vai? Olá novamente, hehehe.

  • O Fuzzy K-Means é uma extensão do K-Means. Ele permite que um ponto de dados pertença a mais de um cluster, atribuindo graus de pertinência a cada um deles. Isso pode ser útil quando os dados são ambíguos e podem pertencer a mais de uma categoria.

Lembrando que as pertinências são usadas para indicar a probabilidade deles ficarem em tais clusters.

  • O K-modes é uma variação do K-Means que lida com dados categóricos, em vez de dados numéricos. Ele usa a moda para representar cada cluster. Ele agrupa os dados em clusters com base na similaridade das categorias.

  • O K-Medoid é um algoritmo que também agrupa os dados em clusters, mas em vez de usar a média dos pontos como representante do cluster, ele usa o ponto mais representativo, chamado de medoid. Isso pode ser útil quando os dados têm valores discrepantes ou quando a média não é uma medida adequada de centralidade.

Se a dúvida persistir, estamos aqui no fórum.

Abraços! :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Olá Maria Isabel, obrigado pelo retorno. Sobre o K-means, além do Within cluster sum of squared errors, qual outra métrica posso aplicar? mais especificamente, estou usando o Weka para rodar as análises, caso tenha algum "package" do Weka para eu baixar, agradeço.

Olá Fabricio,

Quanto as métricas do clustering com o Weka eu verifiquei aqui que essas métricas são as disponíveis com a SimpleKMeans na versão mais atual Insira aqui a descrição dessa imagem para ajudar na acessibilidade . Mas isso pode variar dependendo da sua versão. Em relação aos pacotes do Weka aparentemente ele favorece métodos de clustering ao invés de métricas específicas para agregar ao métodos existentes.

Mas complementando a resposta da minha colega, dentro do Weka existem vários métodos de clustering já instalados Insira aqui a descrição dessa imagem para ajudar na acessibilidade . Aqui um resumo de cada um e as situações onde podem ser aplicados.

EM (Expectation Maximization): Baseia-se em um modelo estatístico para identificar um certo número de distribuições de probabilidade que melhor representam os dados. É particularmente útil quando os dados têm uma distribuição normal ou gaussiana.

Hierarchical Clustering: Constrói um dendrograma que representa as relações de proximidade entre os dados. Pode ser dividido em aglomerativo (bottom-up) e divisivo (top-down). Permite visualizar a estrutura dos dados em diferentes níveis de granularidade.

Farthest First: Uma variação do K-Means, que escolhe os centros dos clusters de forma a maximizar a distância entre eles. É útil para reduzir o impacto da escolha inicial dos centros.

Cobweb: Um algoritmo de clusterização hierárquica baseado em árvore. É bom para dados categóricos e cria uma árvore de conceitos que categoriza os dados.

Canopy Clustering: Um algoritmo pré-clusterização rápido, frequentemente usado para melhorar a eficiência de algoritmos mais precisos, como o K-Means ou EM, em grandes conjuntos de dados.

Olá Allan, obrigado pelo rápido retorno e pelo detalhamento das informações. Tenho mais uma pergunta, pois fui questionado dentro de uma apresentação que fiz sobre "segmentação de clientes". Me perguntaram por que usei SimpleKmeans e não os outros 7. Eu respondi que era devido o propósito da clusterização, mas não pude aprofundar o por que de uma aplicação ou de outra. Consegue me ajudar com isto? obrigado

Oi Fabricio,

Aqui estão algumas situações em que o SimpleKMeans pode ser a escolha adequada:

Dados Bem Separados e Homogêneos: O K-Means funciona melhor quando os clusters são claramente separados e mais ou menos da mesma densidade e tamanho.

Grandes Conjuntos de Dados: O K-Means é relativamente eficiente em termos de computação, tornando-o uma boa escolha para conjuntos de dados grandes.

Clusters Esféricos: O K-Means assume que os clusters são esféricos e equidistantes em todas as direções. Se essa suposição se mantém para os seus dados, o K-Means pode ser uma boa escolha.

Facilidade de Interpretação: Os resultados do K-Means são fáceis de interpretar, o que pode ser útil em situações onde você precisa explicar os resultados para um público não técnico.

Inicialização Rápida e Simples: O K-Means é fácil de configurar e não requer muitos parâmetros, tornando-o uma boa escolha para análises rápidas.

Então se os seus dados tinham algumas dessas características seria válido citar esses pontos que mencionei.

Obrigado pelo retorno. Agradeço pela explicação. Haveria também uma outra questão, Em uma proposta de segmentação de clientes foi usado o canopy e o EM, ai entra a dúvida na hora de explicar, pois pelo que entendi cada um deles tem um propósito, então não posso desenvolver um modelo de segmentação próprio argumentando que um algoritmo é melhor que o outro, correto? obrigado e agradeço a paciência em explicar.

Oi Fabricio desculpe a demora no retorno. Eu dei uma pesquisa sobre os algoritmos. Aqui um resumo:

O algoritmo Canopy é usado principalmente para criar uma pré-clusterização rápida e eficiente, que pode reduzir o espaço de pesquisa e melhorar a eficiência de algoritmos de clusterização subsequentes. Ele é particularmente útil quando se lida com grandes conjuntos de dados, pois pode reduzir significativamente o número de comparações necessárias.

Já o algoritmo EM (Expectation-Maximization) é uma abordagem mais sofisticada e computacionalmente intensiva que pode ser usada para encontrar parâmetros de modelos estatísticos complexos, como misturas de distribuições gaussianas. O EM é capaz de lidar com dados incompletos ou incertos e é frequentemente utilizado para a clusterização final de dados, pois pode ajustar-se a formas complexas de clusters.

Em uma proposta de segmentação de clientes, não se trata de argumentar que um algoritmo é "melhor" que o outro de forma absoluta, mas sim de escolher o algoritmo mais adequado para os seus dados específicos e os objetivos de negócio. Muitas vezes, a escolha do algoritmo depende da natureza dos dados, do tipo de segmentação desejada, da precisão necessária e dos recursos computacionais disponíveis.

Por exemplo, você poderia usar o Canopy para uma pré-segmentação rápida e reduzir o espaço de dados e, em seguida, aplicar o EM para refinar esses clusters iniciais. Isso pode proporcionar um equilíbrio entre eficiência e precisão. A chave é experimentar e validar diferentes abordagens para ver qual delas oferece os melhores resultados práticos para o seu caso de uso específico.