首页 > 解决方案 > 具有预定义质心的 K 均值聚类

问题描述

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

1. R k-means算法自定义中心

2.在R中为kmeans设置静态中心

但是,每次我运行命令时:

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)]

我想知道为什么系统会出现上述错误?对此的任何帮助将不胜感激!

标签: rclassificationcluster-analysisk-meanscentroid

解决方案


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

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


推荐阅读