多个 K,多个模型
虽然 lineup 数据集的 k 值是已知的,但在很多情况下,最优聚类数并不确定,需要进行估计。
在本练习中,您将使用 purrr 库中的 map_dbl(),对 k 从 1 到 10 的取值运行 k-means,并从每个模型中提取簇内离差平方和总和指标。这是绘制肘部图的第一步。
本练习是课程的一部分
R 中的聚类分析
练习说明
- 使用
map_dbl()在lineup数据上对 k 取值 1 到 10 运行kmeans(),并从每个模型中提取簇内离差平方和总和:model$tot.withinss。将得到的向量存为tot_withinss。 - 构建新数据框
elbow_df,其中包含 k 的取值及对应的簇内离差平方和总和向量。
交互式实操练习
通过完成这段示例代码来试试这个练习。
library(purrr)
# Use map_dbl to run many models with varying value of k (centers)
tot_withinss <- map_dbl(1:10, function(k){
model <- kmeans(x = ___, centers = ___)
model$tot.withinss
})
# Generate a data frame containing both k and tot_withinss
elbow_df <- data.frame(
k = ___ ,
tot_withinss = ___
)