当我想用3220个观测值和40个变量来预测二进制矩阵中的聚类数时,我在Nbclust(method =“kmeans”)中出现错误。矩阵维度为:
size(mtrx)
3120 40
class(mtrx)
'matrix'
代码行是:
number_of_clusters<-NbClust(data=mtrx, diss=NULL, distance = "euclidean",
min.nc=2, max.nc=1600, method = "kmeans",
index = "alllong")
错误信息是:
Error in kmeans(jeu, max_nc): more cluster centers than distinct data points.
使用distance = "binary"
时仍然存在错误。
如果我选择任何其他方法类型,则不会出现错误。
我在这里有点困惑。我认为max.nc
应为3119
。
有帮助吗?
修改
此错误与NbClust软件包无关,它来自kmeans函数。线索在“ distinct ”一词中,这很有趣但我没有得到那部分。我想一张照片可以说出更多的话。所以这就是:
让我们从正确的方法开始。在这种情况下,我有一个至少有3个不同行的数据集,我要求在kmeans中有3个初始中心:
Vector<-c(2,2,2,2,2,2,20,10,500,300,400,2)
MATRIX<-matrix(Vector,nrow=4,ncol=3,byrow=TRUE)
print(MATRIX)
km<-kmeans(MATRIX,centers=3)
[,1] [,2] [,3]
[1,] 2 2 2
[2,] 2 2 2
[3,] 20 10 500
[4,] 300 400 2
没有错误,一切都好。
现在,让我们浏览一下包含&lt; 3 不同行的数据集:
Vector<-c(2,2,2,2,2,2,2,2,2,500,300,400)
MATRIX<-matrix(Vector,nrow=4,ncol=3,byrow=TRUE)
print(MATRIX)
km<-kmeans(MATRIX,centers=3)
[,1] [,2] [,3]
[1,] 2 2 2
[2,] 2 2 2
[3,] 2 2 2
[4,] 500 300 400
Error in kmeans(MATRIX, centers=3):
more cluster centers than distinct data points.
错误很明显,我有2个不同的行,我要求3个初始中心。
希望这会对某人有所帮助!