Comece agoraComece grátis

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

Ver curso

Instruções do exercicio

  • Use map_dbl() para executar pam() usando os dados customers_spend para 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 como sil_width.
  • Construa um novo data frame sil_df contendo os valores de k e o vetor de larguras médias do silhouette.
  • Use os valores em sil_df para 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)
Editar e Executar Código