Neste post, vamos explorar como realizar análise de clustering no R utilizando o pacote cluster
. O clustering é uma técnica de aprendizado de máquina não supervisionado que agrupa dados em subconjuntos, ou clusters, onde os elementos dentro de cada cluster são mais semelhantes entre si do que aos elementos de outros clusters. Vamos criar um conjunto de dados de exemplo e abordar várias técnicas de clustering utilizando o cluster
.
Sumário
Por que Usar o cluster para Análise de Clustering no R?
O pacote cluster
fornece uma ampla gama de algoritmos de clustering, como k-means, PAM (Partitioning Around Medoids) e aglomerativo hierárquico. Esses algoritmos são essenciais para identificar padrões e estruturas ocultas em dados, facilitando a segmentação e análise de grandes conjuntos de dados.
Trabalhando com Dados no R
Instalando e Carregando o Pacote cluster
Primeiro, vamos instalar e carregar o pacote cluster
:
# Análise de Clustering no R
# Instalando o pacote cluster
install.packages("cluster")
# Carregando o pacote cluster
library(cluster)
Criando um Conjunto de Dados de Exemplo
Vamos criar um conjunto de dados de exemplo com três clusters distintos:
# Análise de Clustering no R
# Criando um conjunto de dados de exemplo
set.seed(123)
dados <- rbind(
matrix(rnorm(100, mean = 0, sd = 0.3), ncol = 2),
matrix(rnorm(100, mean = 3, sd = 0.3), ncol = 2),
matrix(rnorm(100, mean = 6, sd = 0.3), ncol = 2)
)
colnames(dados) <- c("x", "y")
dados <- as.data.frame(dados)
Visualizando os Dados
Vamos usar o ggplot2
para visualizar os dados de exemplo:
# Análise de Clustering no R
# Carregando o pacote ggplot2
library(ggplot2)
# Visualizando os dados
ggplot(dados, aes(x = x, y = y)) +
geom_point() +
ggtitle("Dados de Exemplo para Clustering")
Realizando Clustering com K-means
Aplicando o Algoritmo K-means
Vamos aplicar o algoritmo k-means para identificar três clusters:
# Análise de Clustering no R
# Aplicando o algoritmo k-means
kmeans_result <- kmeans(dados, centers = 3, nstart = 25)
# Adicionando os clusters aos dados
dados$cluster <- as.factor(kmeans_result$cluster)
Visualizando os Resultados do K-means
Vamos visualizar os resultados do k-means:
# Análise de Clustering no R
# Visualizando os resultados do k-means
ggplot(dados, aes(x = x, y = y, color = cluster)) +
geom_point() +
ggtitle("Resultados do K-means Clustering")
Realizando Clustering com PAM
Aplicando o Algoritmo PAM
O PAM é uma alternativa robusta ao k-means, especialmente útil quando há outliers nos dados:
# Análise de Clustering no R
# Aplicando o algoritmo PAM
pam_result <- pam(dados[,1:2], k = 3)
# Adicionando os clusters aos dados
dados$pam_cluster <- as.factor(pam_result$clustering)
Visualizando os Resultados do PAM
Vamos visualizar os resultados do PAM:
# Análise de Clustering no R
# Visualizando os resultados do PAM
ggplot(dados, aes(x = x, y = y, color = pam_cluster)) +
geom_point() +
ggtitle("Resultados do PAM Clustering")
Realizando Clustering Hierárquico
Aplicando o Algoritmo de Clustering Hierárquico
O clustering hierárquico é uma abordagem que cria uma árvore de clusters:
# Análise de Clustering no R
# Aplicando o algoritmo de clustering hierárquico
hc_result <- hclust(dist(dados[,1:2]), method = "ward.D2")
# Plotando o dendrograma
plot(hc_result, main = "Dendrograma de Clustering Hierárquico")
Cortando a Árvore para Formar Clusters
Podemos cortar a árvore para formar um número específico de clusters:
# Análise de Clustering no R
# Cortando a árvore para formar 3 clusters
hc_clusters <- cutree(hc_result, k = 3)
dados$hc_cluster <- as.factor(hc_clusters)
# Visualizando os resultados do clustering hierárquico
ggplot(dados, aes(x = x, y = y, color = hc_cluster)) +
geom_point() +
ggtitle("Resultados do Clustering Hierárquico")
Avaliando a Qualidade dos Clusters
Calculando o Índice de Silhueta
O índice de silhueta é uma métrica útil para avaliar a qualidade dos clusters:
# Análise de Clustering no R
# Calculando o índice de silhueta para k-means
silhouette_kmeans <- silhouette(kmeans_result$cluster, dist(dados[,1:2]))
mean(silhouette_kmeans[, 3])
# Calculando o índice de silhueta para PAM
silhouette_pam <- silhouette(pam_result$clustering, dist(dados[,1:2]))
mean(silhouette_pam[, 3])
Links Úteis e Mais Conteúdo
Para mais informações sobre como utilizar o R para análise de dados, confira outros conteúdos no meu blog:
- Ler e Escrever Arquivos CSV no R
- Strings no R
- Visualizações de Dados no R
- Agregação no R
- Combinar DataFrames no R
- Filtrar Dados no R
Considerações Finais
Espero que este guia tenha sido útil para aprender como realizar análise de clustering com o pacote cluster
no R. A prática é essencial para dominar essas técnicas, então encorajo você a experimentar e aplicar esses métodos em seus próprios projetos de análise de dados.
Para aprimorar suas habilidades com o R e se tornar mais eficiente na análise de clustering, é importante também fortalecer sua compreensão em ciência de dados. Recomendamos o livro Fundamentos em R: Guia Completo para Iniciantes, disponível na Amazon, que oferece uma introdução abrangente ao R.
Junte-se à nossa comunidade no Twitter e inscreva-se no nosso canal do YouTube para acessar mais tutoriais, dicas e recursos. Continue praticando e explorando novas maneiras de realizar análise de clustering no R, e fique atento para mais guias e tutoriais que compartilharemos.