R—;自动最优聚类数排序算法
我感兴趣的是找到一个R—;自动最优聚类数排序算法,r,validation,cluster-analysis,sequence,hierarchical-clustering,R,Validation,Cluster Analysis,Sequence,Hierarchical Clustering,我感兴趣的是找到一个函数来自动确定R中的最佳簇数 我正在使用软件包TraMineR中的序列算法来计算我的距离 library(TraMineR) data(biofam) biofam.seq <- seqdef(biofam[501:600, 10:25]) ## OM distances ## biofam.om <- seqdist(biofam.seq, method = "OM", indel = 3, sm = "TRATE", full.matrix = F)
函数
来自动确定R中的最佳簇数
我正在使用软件包TraMineR
中的序列算法来计算我的距离
library(TraMineR)
data(biofam)
biofam.seq <- seqdef(biofam[501:600, 10:25])
## OM distances ##
biofam.om <- seqdist(biofam.seq, method = "OM", indel = 3, sm = "TRATE",
full.matrix = F)
然后,可以手动确定簇的数量
clusters = cutree(h, k = 7)
我想要的最终是在cutree
函数中根据“理想”的簇数自动设置k
簇数
包clValid
似乎有这样的功能(optimalScores
)。
但是,我无法将距离矩阵传递到clValid
clValid(obj = as.dist(biofam.om), 2:6, clMethods = 'hierarchical')
我得到这个错误
参数“obj”必须是矩阵、data.frame或ExpressionSet对象
我使用其他软件包(如NbClust
NbClust(diss = as.dist(biofam.om), method = 'ward.D')
需要数据矩阵
有人知道如何解决这个问题,或者知道其他软件包吗
谢谢 衡量聚类结果的质量和选择最佳聚类数有几种不同的标准。看看weightedCluster包:
您可以很容易地比较不同的度量值和聚类数。尝试
NbClust(diss=as.matrix(as.dist(biofam.om)),方法='ward.D')
。在文档中,它表示需要一个矩阵。您可以使用kgs
惩罚函数来获得最佳的簇数。您需要hclust
和距离矩阵对象。也看到这个。
NbClust(diss = as.dist(biofam.om), method = 'ward.D')