Revisitando os dados de atacado: "melhor" k
No final do Capítulo 2, você explorou os dados de um distribuidor atacadista, customers_spend, usando agrupamento hierárquico. Desta vez, você vai analisar esses dados usando as ferramentas de k-means apresentadas neste capítulo.
O primeiro passo será determinar o valor "melhor" de k usando a largura média do silhouette.
Relembrando os dados: eles contêm registros do valor gasto por 45 clientes diferentes de um distribuidor atacadista nas categorias de alimentos Milk, Grocery e Frozen. Isso está armazenado no data frame customers_spend. Para este exercício, você pode assumir que, como os dados são todos do mesmo tipo (valor gasto), não será necessário fazer o escalonamento.
Este exercicio faz parte do curso
Análise de Clusters em R
Instruções do exercicio
- Use
map_dbl()para executarpam()usando os dadoscustomers_spendpara valores de k de 2 a 10 e extraia o valor de largura média do silhouette de cada modelo:model$silinfo$avg.width. Armazene o vetor resultante comosil_width. - Construa um novo data frame
sil_dfcontendo os valores de k e o vetor de larguras médias do silhouette. - Use os valores em
sil_dfpara criar um gráfico de linhas mostrando a relação entre k e largura média do silhouette.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# Use map_dbl to run many models with varying value of k
sil_width <- map_dbl(2:10, function(k){
model <- pam(x = ___, k = ___)
model$silinfo$avg.width
})
# Generate a data frame containing both k and sil_width
sil_df <- data.frame(
k = ___,
sil_width = ___
)
# Plot the relationship between k and sil_width
ggplot(___, aes(x = ___, y = ___)) +
geom_line() +
scale_x_continuous(breaks = 2:10)