far*_*far 7 r cluster-analysis
我想使用 NbClust 包确定聚类的最佳 k。我的数据既有连续变量又有分类变量,因此我使用使用 cluster 包中的 daisy() 计算得出的相异矩阵。我使用了下面的代码:
res.nb <- NbClust(gower_dist_gender, min.nc = 1,
max.nc = 5,method = "complete", index ="all")
Run Code Online (Sandbox Code Playgroud)
并遇到这个错误:
The TSS matrix is indefinite. There must be too many missing values. The
index cannot be calculated.
Run Code Online (Sandbox Code Playgroud)
问题是什么?我应该如何解决?另外考虑到当我将索引设置为“silhouette”时,没有出现问题并返回最佳k为2。但我想使用index =“all”来确保根据大多数索引得到最佳k的结果(当索引设置为“全部”时,26个索引被视为索引,结果显示索引对k个数的多数投票)。 所以问题是为什么运行上面将索引设置为“all”的代码会遇到前面提到的错误?
任何一点帮助将不胜感激。
您对 NbClust 的调用是错误的。
\n请参阅有关如何使用距离矩阵而不是数据矩阵的文档:
\n\n\n数据
\n矩阵或数据集。
\n指责
\n要使用的相异矩阵。默认情况下,\xc2\xa0diss=NULL,但如果用相异矩阵替换,则距离应为“NULL”。
\n距离
\n用于计算相异矩阵的距离度量。这必须是以下之一:“euclidean”、“maximum”、“manhattan”、“canberra”、“binary”、“minkowski”或“NULL”。默认情况下,距离=“欧几里德”。如果距离为“NULL”,则相异矩阵(diss)应由用户给出。如果距离不为“NULL”,则相异矩阵应为“NULL”。
\n
使用 data=NULL、distance=NULL 并设置 diss 代替。
\n| 归档时间: |
|
| 查看次数: |
9878 次 |
| 最近记录: |