R - 自动最优群集序列算法

时间:2018-01-27 16:03:51

标签: r validation cluster-analysis sequence hierarchical-clustering

我有兴趣找到function自动确定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)

例如,hclust可以像这样使用

h = hclust(as.dist(biofam.om), method = 'ward')
然后

可以手动确定群集的数量

clusters = cutree(h, k = 7)

我想要的最终是根据“理想”的群集数量,在cutree函数中自动设置k个群集。

clValid似乎有这样的功能(optimalScores)。 但是,我无法将距离矩阵传递给clValid

clValid(obj = as.dist(biofam.om), 2:6, clMethods = 'hierarchical')

我收到此错误

  

参数'obj'必须是matrix,data.frame或ExpressionSet对象

我使用其他软件包(例如NbClust

)会遇到同样的错误
NbClust(diss = as.dist(biofam.om), method = 'ward.D')  
  

需要数据矩阵。

任何人都知道如何解决这个问题或了解其他包裹?

感谢。

1 个答案:

答案 0 :(得分:1)

有几种不同的标准可用于衡量聚类结果的质量并选择最佳聚类数。看一下weightedCluster包:http://mephisto.unige.ch/weightedcluster/WeightedCluster.pdf 您可以轻松地比较不同的度量和群集数量。