R 具有预定义质心的K-均值聚类

R 具有预定义质心的K-均值聚类,r,classification,cluster-analysis,k-means,centroid,R,Classification,Cluster Analysis,K Means,Centroid,我正在尝试使用预定义的质心运行K-means算法。我看过以下帖子: 一, 二, 但是,每次运行命令时: km = kmeans(df_std[,c(10:13)], centers = centroids) 我得到以下错误: **Error: empty cluster: try a better set of initial centers** 我将质心定义为: centroids = matrix(c(140.12774, 258.62615, 239.36800, 77.43235,

我正在尝试使用预定义的质心运行K-means算法。我看过以下帖子:

一,

二,

但是,每次运行命令时:

km = kmeans(df_std[,c(10:13)], centers = centroids)
我得到以下错误:

**Error: empty cluster: try a better set of initial centers**
我将质心定义为:

centroids = matrix(c(140.12774, 258.62615, 239.36800, 77.43235,
                      33.37736, 58.73077,  68.80000,  12.11765,
                     0.8937264, 0.8118462, 0.8380000, 0.8052941,
                     11.989858, 12.000000, 8.970000,  1.588235),
ncol = 4, byrow = T)
我的数据是数据框的一个子集,比如说:df_std。它已经被缩放了

df_std[,c(10:13)]
我想知道为什么系统会给出上述错误?
在此方面的任何帮助都将不胜感激

浏览我在上面发布的特定错误时:

Error: empty cluster: try a better set of initial centers
我找到了对话的以下链接:

广义而言,上述误差是在质心与数据不匹配时产生的

这可能发生在 k 是一个数字: 由于k-均值算法的随机启动,中心可能与数据不匹配

它也可能发生在 k 表示质心(我的案例)。问题是:我的数据已缩放,但质心未缩放。


上面的共享链接让我意识到我的代码中有一个bug。希望它能帮助像我这样处境相似的人

使用最近邻分类器仅使用中心,不要重新分类


这意味着每个点都被标记为最近的中心。这类似于k-means,但不改变中心,不需要迭代,每个新数据点都可以以任何顺序独立处理。一次只处理一个点时不会出现问题(在您的案例中,k-means失败是因为一个集群变为空!)

您确定这就是您想要的吗?集群将移动(如果它们没有变为空)。你很可能想做最近邻分类而不是客户分类…@Anony Mouse是的,我绝对想要基于质心的聚类!我正在复制我在一个数据集上所做的一些工作。现在,对于新的数据集,我不希望使用无监督聚类,而是希望提取类似的组。@Anony Mouse我还看到有许多人,他们根据自己的需要,必须通过基于质心的聚类,请参见:您希望中心移动还是不移动?这些集群中至少有一个是空的,并且将消失。请更详细地解释我的问题。我之前做的工作有4个集群A、B、C和D。集群A和B人口密集,而C和D人口稀少。该分类基于包含八个特征(X=8)的集合。如果我想在相同的八个特征的基础上得到相似的观察分布,我不应该使用具有预定义质心的K-均值吗?