You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用轮廓系数法聚类时map_dbl与silhouette未找到错误求助

聚类分析轮廓系数计算的错误解决方法

核心问题及修复步骤

1. map_dbl函数未找到

安装purrr或tidyverse包后,必须显式加载包才能调用函数,在代码开头添加:

library(purrr)
# 或加载完整tidyverse套件:library(tidyverse)

2. silhouette函数未找到

silhouette属于cluster包,需先安装并加载:

install.packages("cluster")  # 首次运行需安装
library(cluster)

3. 代码笔误修正

自定义函数avg_sil中,聚类结果存储为变量s,但后续计算均值时误写为ss[,3],需改为s[,3],否则会触发“对象未找到”错误。同时建议用标准化数据集country_norm_ok计算距离(与kmeans输入一致),避免结果偏差。

修正后的完整代码

# 加载依赖包
library(purrr)
library(cluster)

# 定义平均轮廓系数计算函数
avg_sil <- function(k) {
  km.res <- kmeans(country_norm_ok, centers = k, nstart = 25)
  s <- silhouette(km.res$cluster, dist(country_norm_ok))
  mean(s[, 3])
}

# 遍历聚类数范围
k.values <- 2:15
avg_sil_values <- map_dbl(k.values, avg_sil)

# 绘制轮廓系数变化曲线
plot(k.values, avg_sil_values, type = "b", pch = 19, frame = FALSE, 
     xlab = "聚类数K", ylab = "平均轮廓系数")

内容的提问来源于stack exchange,提问作者Vivian Roberts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 11:45:32