Este artigo foi publicado como parte do Blogathon de Ciência de Dados
Introdução
Neste artigo, veremos uma abordagem diferente para clustering K Means, chamada clustering hierárquico. Em comparação com K Means ou K Mode, o clustering hierárquico tem um algoritmo subjacente diferente para como o mecanismo de cluster funciona. O agrupamento hierárquico usa técnicas aglomerativas ou divisivas, enquanto K Means usa uma combinação de distância centróide e euclidiana para formar clusters. Os dendrogramas podem ser usados para visualizar clusters em agrupamentos hierárquicos, o que pode ajudar na melhor interpretação dos resultados por meio de taxonomias significativas. Não precisamos especificar o número de clusters ao fazer um dendograma.
Aqui usamos Python para explicar o modelo hierárquico de clustering. Temos dados de 200 clientes de shopping em nosso conjunto de dados. O ID do cliente, gênero, idade, renda anual e pontuação de gastos de cada cliente estão todos incluídos no quadro de dados. O valor calculado para cada pontuação de gastos de seus clientes é baseado em vários critérios, como renda, número de vezes por semana que visitam o shopping e quanto dinheiro gastaram em um ano. Essa pontuação varia de 1 a 100. Como não sabemos as respostas, um problema de negócios torna-se um problema de agrupamento. As categorias finais dos dados são desconhecidas para nós. Como resultado, nosso objetivo é descobrir alguns grupos de clientes até então desconhecidos.
Mas primeiro, examinaremos alguns termos importantes do agrupamento hierárquico.
Termos importantes em cluster hierárquico
Métodos de ligação
Se houver (a) observações originais a[0],…,a[|a|1] no cluster (a) e (b) objetos originais b[0],…,b[|b|1] no cluster ( b), então devemos calcular a distância entre dois clusters (a) e (b) para combiná-los (b). Digamos que haja um ponto (d) que não foi atribuído a nenhum dos clusters. Precisaremos descobrir a que distância o cluster (a) está do cluster (d) e o cluster (b) está do cluster (d).
Os clusters agora normalmente contêm vários pontos, necessitando de um método diferente para calcular a matriz de distância. O método pelo qual a distância entre clusters, ou ponto a cluster, é calculada é determinado por ligação. A seguir estão alguns dos mecanismos de ligação mais comumente usados:
Ligação única — As distâncias entre os membros mais semelhantes são calculadas para cada par de clusters e os clusters são então mesclados com base na distância mais curta.
Ligação média — A distância entre todos os membros de um cluster e todos os membros de outro cluster é calculada. Depois disso, a média dessas distâncias é usada para determinar quais clusters serão mesclados.
Ligação completa — Para cada par de clusters, as distâncias entre os membros mais diferentes são calculadas e os clusters são então mesclados com base na distância mais curta.
Ligação Mediana — Usamos a distância mediana em vez da distância média de forma semelhante à ligação média.
Ligação da Ala — Determina a distância entre clusters usando o método de análise de variância.
Ligação centróide — O centróide de cada cluster é calculado calculando a média de todos os pontos atribuídos ao cluster, e a distância entre os clusters é então calculada usando este centróide.
Cálculo de Distância
Existem múltiplas abordagens para calcular a distância entre dois ou mais clusters, sendo a Distância Euclidiana a mais popular. Outras métricas de distância, como Minkowski, City Block, Hamming, Jaccard e Chebyshev, também podem ser usadas com clustering hierárquico. Diferentes métricas de distância têm impacto no cluster hierárquico, conforme mostrado na Figura 2.
Dendrograma
O relacionamento entre objetos em um espaço de recursos é representado por um dendograma. Em um espaço de recursos, é usado para mostrar a distância entre cada par de objetos mesclados sequencialmente. Os dendrogramas são frequentemente usados para examinar clusters hierárquicos antes de decidir sobre o número apropriado de clusters para o conjunto de dados. A distância do dendograma é a distância entre dois clusters quando eles se combinam. A distância do dendograma determina se dois ou mais clusters são disjuntos ou podem ser unidos para formar um único cluster.
Exemplo
Agora veremos exemplos usando Python para demonstrar o modelo de cluster hierárquico. Temos dados de 200 clientes de shopping em nosso conjunto de dados. O ID do cliente, gênero, idade, renda anual e pontuação de gastos de cada cliente estão todos incluídos no quadro de dados. O valor calculado para cada pontuação de gastos de seus clientes é baseado em vários critérios, como renda, número de vezes por semana que visitam o shopping e o dinheiro gasto durante um ano. Essa pontuação varia de 1 a 100. Como não sabemos as respostas, um problema de negócios torna-se um problema de agrupamento.
#1 Importando as bibliotecas importar numpy como np importar matplotlib.pyplot como plt importar pandas como pd
#2 Importando o conjunto de dados Mall_Customers por pandas
conjunto de dados = pd.read_csv('Mall_Customers.csv') X = conjunto de dados.iloc[:, [3,4]].valores
Esta nova etapa no clustering hierárquico também envolve a determinação do número ideal de clusters. Não vamos usar o método do cotovelo desta vez. Faremos uso do dendograma.
#3 Usando o dendograma para encontrar o número ideal de clusters. # A primeira coisa que faremos é importar a biblioteca scipy. scipy é uma biblioteca # Python de código aberto que contém ferramentas para fazer clustering hierárquico e construir dendogramas. # Importe apenas a ferramenta necessária. importar scipy.cluster.hierarchy como sch
#Vamos criar uma variável de dendrograma #linkage é na verdade o próprio algoritmo de clustering hierárquico e então em #linkage temos que especificar quais dados aplicamos e engajamos. Este é o conjunto de dados X dendograma = sch.dendrogram(sch.linkage(X, método = "ala")) plt.title('Dendrograma') plt.xlabel('Clientes') plt.ylabel('Distâncias euclidianas') plt.show()
O método Ward é um método que tenta reduzir a variação dentro de cada cluster. É quase o mesmo que quando usamos K-means para minimizar o wcss para traçar nosso gráfico de método de cotovelo; a única diferença é que, em vez de wcss, estamos minimizando as variantes dentro do cluster. Dentro de cada cluster, esta é a variação. O dendograma é mostrado abaixo.
Os clientes são representados no eixo x e a distância euclidiana entre os clusters é representada no eixo y. Como descobrimos o melhor número de clusters com base neste diagrama? Queremos encontrar a maior distância vertical possível sem cruzar nenhuma linha horizontal, que é a linha com moldura vermelha no diagrama acima. Vamos contar as linhas no diagrama e descobrir quantos clusters são melhores. Para este conjunto de dados, o número do cluster será 5.
#4 Ajustando cluster hierárquico ao conjunto de dados Mall_Customes # Existem dois algoritmos para clustering hierárquico: Agglomerative Hierarchical Clustering e # Divisive Hierarchical Clustering. Escolhemos a distância euclidiana e o método ward para nossa # classe de algoritmo de sklearn.cluster import AgglomerativeClustering hc = AgglomerativeClustering(n_clusters = 5, affinity = 'euclidean', linkage ='ward') # Vamos tentar ajustar o algoritmo de clustering hierárquico ao conjunto de dados X enquanto criamos o # vetor de clusters que informa para cada cliente a qual cluster o cliente pertence. y_hc=hc.fit_predict(X)
#5 Visualizando os clusters. Este código é semelhante ao código de visualização k-means. #Nós apenas substituímos o nome do vetor y_kmeans por y_hc para o cluster hierárquico plt.scatter(X[y_hc==0, 0], X[y_hc==0, 1], s=100, c='red', label = 'Grupo 1') plt.scatter(X[y_hc==1, 0], X[y_hc==1, 1], s=100, c='azul', rótulo ='Cluster 2') plt.scatter(X[y_hc==2, 0], X[y_hc==2, 1], s=100, c='verde', rótulo ='Cluster 3') plt.scatter(X[y_hc==3, 0], X[y_hc==3, 1], s=100, c='ciano', rótulo ='Cluster 4') plt.scatter(X[y_hc==4, 0], X[y_hc==4, 1], s=100, c='magenta', rótulo ='Cluster 5') plt.title('Clusters de Clientes (Modelo Hierárquico de Clustering)') plt.xlabel('Renda Anual(k$)') plt.ylabel('Pontuação de gastos(1-100') plt.show()
Esses clusters podem ser considerados o segmento de clientes do shopping.
Isso é tudo que existe para um modelo de cluster hierárquico padrão. O conjunto de dados, bem como todos os códigos, estão disponíveis na seção Github.
Conclusão
Em qualquer exercício de agrupamento, determinar o número de agrupamentos é um processo demorado. Como o lado comercial do negócio está mais preocupado em extrair significado desses grupos, é fundamental visualizar os clusters em duas dimensões e verificar se são distintos. PCA ou Análise Fatorial pode ser usada para atingir esse objetivo. Este é um método comum para apresentar os resultados finais às diversas partes interessadas, facilitando o consumo do resultado por todos.
EndNote
Obrigado por ler!
Espero que você tenha gostado do artigo e aumentado seu conhecimento.
Por favor sinta-se à vontade para me contactar on E-mail
Algo não mencionado ou deseja compartilhar suas idéias? Sinta-se à vontade para comentar abaixo e entrarei em contato com você.
Sobre o autor
Hardikkumar M. Dhaduk
Analista de Dados | Especialista em Análise de Dados Digitais | Aluno de ciência de dados
Conecte-se comigo no Linkedin
Conecte-se comigo no Github
As mídias mostradas neste artigo não são propriedade da Analytics Vidhya e são usadas a critério do autor.
Relacionado
Fonte: https://www.analyticsvidhya.com/blog/2021/08/hierarchical-clustering-algorithm-python/
- 100
- algoritmo
- algoritmos
- Todos os Produtos
- análise
- analista
- analítica
- artigo
- MELHOR
- Prédio
- negócio
- Cidades
- código
- comercial
- comum
- consumir
- Criar
- Clientes
- dados,
- análise de dados
- ciência de dados
- digital
- distância
- Exercício
- Característica
- Figura
- Primeiro nome
- caber
- formulário
- Gratuito
- gif
- GitHub
- Verde
- Como funciona o dobrador de carta de canal
- HTTPS
- Impacto
- importador
- Passiva
- IT
- Conhecimento
- Biblioteca
- Line
- Fazendo
- Mídia
- Membros
- Métrica
- modelo
- dinheiro
- Mais populares
- números
- aberto
- open source
- ordem
- Outros
- Popular
- Python
- RE
- reduzir
- Resultados
- Ciência
- Partilhar
- Espaço
- Passar
- conta
- tempo
- us
- visualização
- semana
- dentro
- trabalho
- X
- ano