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

R使用fviz_nbclust求解最优聚类数报more cluster centers错误如何解决

报错原因

你当前使用的数据集tab维度为6行(g1~g6)、37列,fviz_nbclust函数默认将输入数据的行作为聚类样本,且默认测试的聚类数范围为1到10:

  • 若你实际需要对列(37个样本)聚类,未做转置的情况下函数只会把6行当作样本,当测试的k值超过6时,自然会出现「聚类中心数多于唯一数据点」的报错
  • 若你确实需要对行(6个基因)聚类,默认测试上限10远大于6个样本的最大可支持聚类数,同样会触发报错
解决方案

场景1:对37个列样本聚类

先对数据做转置,让行对应聚类样本,同时调整k.max参数将测试的最大聚类数降低到合理范围:

# 未标准化版本
fviz_nbclust(t(tab), kmeans, method = "wss", k.max = 8)
# 标准化版本(你的特征取值均为0/0.5/1,标准化必要性较低,可按需选择)
fviz_nbclust(scale(t(tab)), kmeans, method = "wss", k.max = 8)

如果调整后仍报错,说明你的样本中重复值较多,可继续调低k.max的取值。

场景2:对6个行基因聚类

直接调整k.max参数,让最大测试聚类数小于等于5即可:

# 未标准化版本
fviz_nbclust(tab, kmeans, method = "wss", k.max = 5)
# 标准化版本
fviz_nbclust(scale(tab), kmeans, method = "wss", k.max = 5)

额外说明:你的数据集特征/样本量偏少,kmeans聚类效果可能有限,也可考虑使用层次聚类做小样本聚类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 16:45:03