开始使用免费开始使用

K-means:平均轮廓宽度

层次聚类得到 3 个簇,而肘部法则建议 2 个簇。本练习将使用平均轮廓宽度来探索 k 的"最佳"取值应为多少。

本练习是课程的一部分

R 中的聚类分析

查看课程

练习说明

  • 使用 map_dbl()k 取值为 2 到 10 的范围内,对 oes 数据运行 pam(),并从每个模型中提取平均轮廓宽度model$silinfo$avg.width。将得到的向量保存为 sil_width
  • 构建一个新的数据框 sil_df,包含 k 的取值以及对应的平均轮廓宽度向量。
  • 使用 sil_df 中的值绘制折线图,展示 k平均轮廓宽度之间的关系。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Use map_dbl to run many models with varying value of k
sil_width <- map_dbl(2:10,  function(k){
  model <- pam(___, 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)
编辑并运行代码