Introdução ao cluster hierárquico em R
O cluster hierárquico em R é a forma mais comum de aprendizado. O clustering é um dos algoritmos de aprendizado de máquina que tira as inferências dos dados não rotulados.
Existem principalmente dois tipos de algoritmo de aprendizado de máquina:
- Algoritmos de aprendizado supervisionados
- Algoritmos de aprendizado não supervisionados
Os algoritmos de aprendizado supervisionado são uma categoria de um algoritmo de aprendizado de máquina no qual a máquina está aprendendo com os dados rotulados. Um exemplo de algoritmos de aprendizado supervisionado é classificação e regressão. Os algoritmos de aprendizado não supervisionado são uma categoria de um algoritmo de aprendizado de máquina em que a máquina está aprendendo com dados não rotulados. Um exemplo de algoritmos de aprendizado não supervisionado são os algoritmos de agrupamento.
Como funciona o clustering?
Os algoritmos de cluster agrupam um conjunto de pontos de dados semelhantes em clusters. O principal objetivo do algoritmo de clustering é criar clusters de pontos de dados semelhantes nos recursos. Em outras palavras, os pontos de dados em um cluster são semelhantes e os pontos de dados em um cluster são diferentes dos pontos de dados em outro cluster.
Existem principalmente usos de duas abordagens no algoritmo de agrupamento hierárquico, conforme indicado abaixo:
1. Aglomerativo
Começa com cada observação em um único cluster e, com base na medida de similaridade na observação, funde os clusters para formar um único cluster até que não seja possível uma fusão mais distante, essa abordagem é chamada de abordagem aglomerativa.
2. Divisivo
Começa com todas as observações em um único cluster e divide-se ainda mais com base na medida de similaridade ou no conjunto de medidas de dissimilaridade até que nenhuma divisão seja possível, essa abordagem é chamada de método de divisão.
Agora, vamos começar os algoritmos de cluster hierárquico. O cluster hierárquico pode ser realizado de cima para baixo ou de baixo para cima. Começamos com uma abordagem de baixo para cima ou aglomerativa, em que começamos a criar um cluster para cada ponto de dados e depois mesclamos os clusters com base em alguma medida de similaridade nos pontos de dados. O próximo ponto importante é que como podemos medir a semelhança. Existem muitas matrizes de distância disponíveis, como Euclidiana, Jaccard, Manhattan, Canberra, Minkowski, etc. para encontrar a medida de dissimilaridade. A escolha da matriz de distância depende do tipo de conjunto de dados disponível, por exemplo, se o conjunto de dados contiver valores numéricos contínuos, a melhor opção será a matriz de distância euclidiana, enquanto que se o conjunto de dados contiver dados binários, a boa opção será Jaccard matriz de distância e assim por diante.
Implementando cluster hierárquico em R
As etapas necessárias para executar a implementação do cluster hierárquico em R são:
1. Instale todos os pacotes R necessários
Vamos usar os pacotes abaixo, portanto, instale todos esses pacotes antes de usar:
install.packages ( "cluster" ) # for clustering algorithms
install.packages ( "tidyverse" ) # for data manipulation
install.packages ( "factoextra" ) # for clustering visualization
# includes package in R as –
library ( "cluster" )
library( "tidyverse" )
library( "factoextra" )
2. Preparação de Dados
Os dados Prepare-se para a análise hierárquica de cluster, esta etapa é muito básica e importante, precisamos executar principalmente duas tarefas aqui que estão dimensionando e estimando o valor ausente. Os dados devem ser escalados ou padronizados ou normalizados para tornar variáveis comparáveis. O escalonado, padronizado ou normalizado é um processo de transformação das variáveis, de modo que elas tenham um desvio padrão um e média zero.
Se em nosso conjunto de dados houver algum valor ausente, é muito importante atribuir o valor ausente ou remover o próprio ponto de dados. Existem diferentes opções disponíveis para atribuir o valor ausente, como valor médio, médio e mediano, para estimar o valor ausente. Por exemplo, usamos aqui o conjunto de dados interno da íris, no qual queremos agrupar o tipo de planta da íris, o conjunto de dados da íris contém 3 classes para cada instância da classe 50. Ele contém 5 recursos como Sepal. Comprimento, Sepal.Largura, Pétala.Length, Pétala.Largura e Espécies.
O código R:
data <- iris
print(data)
# the sample of data set showing below which contain 1 sample for each class
"Comprimento do sepal" "Largura do sepal" "Comprimento do pétala" "Largura do pétala" "Espécies"
1 4, 9 3, 5 1, 3 0, 2 setosa
51 7, 0 3, 1 4, 5 1, 3 Versicolor
101 6, 3 3, 2 6, 0 1, 9 Virgínia
data <- na.omit(data) # remove missing value
data <- scale(df) # scaling the variables or features
3. Especifique quais algoritmos de cluster hierárquico usando
Os diferentes tipos de algoritmos de cluster hierárquico como cluster hierárquico aglomerativo e cluster hierárquico divisivo estão disponíveis em R. As funções necessárias são -
- Cluster hierárquico aglomerativo (HC): função hclust que está disponível no pacote de estatísticas e função Agnes que está disponível no pacote de cluster) para
- Cluster hierárquico divisivo: função Diana que está disponível no pacote de clusters.
4. Computação em cluster hierárquico
Para calcular o cluster hierárquico, a matriz de distância precisa ser calculada e colocar o ponto de dados no cluster correto. Existem diferentes maneiras de calcular a distância entre o cluster, conforme indicado abaixo:
Vinculação completa: a distância máxima calcula entre os clusters antes da mesclagem.
Ligação única: a distância mínima calcula entre os clusters antes da mesclagem.
Vinculação média: calcula a distância média entre os clusters antes da mesclagem.
Código R:
cluster <- hclust(data, method = "average" )
Ligação do centróide: A distância entre os dois centróides dos clusters é calculada antes da mesclagem.
Código R:
# matrix of Dissimilarity
dis_mat <- dist(data, method = "euclidean")
# Hierarchical clustering using Complete Linkage
cluster <- hclust(data, method = "complete" )
# or Compute with agnes
cluster <- agnes(data, method = "complete")
5. Dendrogramas
O dendograma é usado para gerenciar o número de clusters obtidos. Ele executa o mesmo que em k-means k executa para controlar o número de armazenamento em cluster. A função atual que podemos usar para cortar o dendrograma.
Código R:
cutree(as.hclust(cluster), k = 3)
O código R completo:
ibrary(scatterplot3d)
data <- iris
print( data )
data <- na.omit(data)
data <- scale(data)
# matrix of Dissimilarity
dis_mat <- dist(data, method = "euclidean")
# creating hierarchical clustering with Complete Linkage
cluster <- hclust(data, method = "complete" )
# Dendrogram plot
plot(cluster)
# or agnes can be used to compute hierarchical clustering
Cluster2 <- agnes(data, method = "complete")
# Dendrogram plot
plot(cluster2)
O gráfico do código R acima:
Conclusão
Existem principalmente dois tipos de algoritmos de aprendizado de máquina: algoritmos de aprendizado supervisionado e algoritmos de aprendizado não supervisionado. Os algoritmos de cluster são um exemplo de algoritmos de aprendizado não supervisionado. Os algoritmos de cluster agrupam um conjunto de pontos de dados semelhantes em clusters. Existem principalmente usos de duas abordagens no algoritmo de agrupamento hierárquico, conforme indicado abaixo no agrupamento hierárquico aglomerativo e no agrupamento hierárquico divisivo.
Artigos recomendados
Este é um guia para Clustering Hierárquico em R. Aqui discutimos como o clustering funciona e implementando o clustering hierárquico em R em detalhes. Você também pode consultar nossos outros artigos relacionados para saber mais.
- Algoritmo de cluster
- O que é clustering na mineração de dados?
- Métodos de agrupamento
- Métodos de aprendizado de máquina
- Visão geral da análise de cluster hierárquica
- Lista de Pacotes R