r - 具有预定义质心的 K 均值聚类
问题描述
我正在尝试使用预定义的质心运行 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)]
我想知道为什么系统会出现上述错误?对此的任何帮助将不胜感激!
解决方案
使用仅使用中心的最近邻分类器,不要重新聚类。
这意味着每个点都被标记为最近的中心。这类似于 k-means ,但您无需更改中心,无需迭代,并且每个新数据点都可以以任意顺序独立处理。一次只处理一个点时不会出现问题(在您的情况下,k-means 失败是因为一个集群变空了!)
推荐阅读
- javascript - 如何在 React Navigation 中深度链接到嵌套导航器?
- javascript - 淘汰赛添加到数组的数组
- unicode - Windows 代码页 1252 能够处理非英文字符
- flutter - 导航器上下文中的 Flutter App Bar 组件不起作用
- javascript - 流星 js 1.7.0.5 不会访问 mac 上的数据库
- json - 对嵌套结构使用自定义解组时,GoLang 结构无法正确解组
- c# - 从嵌套 JSON 响应中检索 DataTable Result 对象
- android - 有没有办法在二维码中嵌入逻辑?
- python - 无服务器和通过 pymongo 和连接池的连接
- mysql - Sails 数据存储适配器