【问题标题】:How to fix kmeans error in r : 'more cluster centers than distinct data points'如何修复 r 中的 kmeans 错误:“聚类中心多于不同的数据点”
【发布时间】:2013-06-10 10:18:46
【问题描述】:

当我运行 kmeans 算法时,我收到此错误:

Error in kmeans(x, 2, 15) : 
  more cluster centers than distinct data points.

如何解决此错误,它是什么意思?我认为我的数据点是不同的?

这是我的文件和我用来生成 kmeans 的 r 代码:

rnames.csv : 
"a1","a2","a3"

cells.csv : 
0,1,2,1,4,3,5,3,4

cnames.csv : 
"google","so","test"

cells = c(read.csv("c:\\data-files\\kmeans\\cells.csv", header = TRUE))
rnames = c(read.csv("c:\\data-files\\kmeans\\rnames.csv", header = TRUE))
cnames = c(read.csv("c:\\data-files\\kmeans\\cnames.csv", header = TRUE))

x <- matrix(cells, nrow=3, ncol=3, byrow=TRUE, dimnames=list(rnames, cnames))

# run K-Means
km <- kmeans(x, 2, 15)

【问题讨论】:

  • 这正是它所说的:您的数据中的不同案例少于您指定的中心数量。这表明您的数据与您在 Q 中勾勒的示例不匹配,因为当我将该数据读入 3x3 矩阵时,kmeans 运行良好。当您真正收到错误时,请仔细检查x
  • @joran 是的,x 确实是空的,我的文件只包含数据(没有标题)所以当我更改为 header=FALSE 而不是 header=TRUE 时它确实有效

标签: r k-means hierarchical-clustering


【解决方案1】:

解决这个问题是使用:

cells = c(read.csv("c:\\data-files\\kmeans\\cells.csv", header = FALSE))
rnames = c(read.csv("c:\\data-files\\kmeans\\rnames.csv", header = FALSE))
cnames = c(read.csv("c:\\data-files\\kmeans\\cnames.csv", header = FALSE))

而不是

cells = c(read.csv("c:\\data-files\\kmeans\\cells.csv", header = TRUE))
rnames = c(read.csv("c:\\data-files\\kmeans\\rnames.csv", header = TRUE))
cnames = c(read.csv("c:\\data-files\\kmeans\\cnames.csv", header = TRUE))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 2012-04-02
    • 2021-02-04
    • 2016-02-02
    • 2021-10-09
    • 2018-08-17
    • 1970-01-01
    相关资源
    最近更新 更多