我有一个混合类型的数据集,所以我想尝试kamila聚类。应用起来很容易,但是我想用一个图来决定类似于拐点图的簇数。

data <- read.csv("binarymat.csv",header=FALSE,sep=";")
conInd <- c(9)
conVars <- data[,conInd]
conVars <- data.frame(scale(conVars))
catVarsFac <- data[,c(1,2,3,4,5,6,7,8)]
catVarsFac[] <- lapply(catVarsFac, factor)
catVarsDum <- dummyCodeFactorDf(catVarsFac)
kamRes <- kamila(conVars, catVarsFac, numClust=5, numInit=10,
            calcNumClust = "ps",numPredStrCvRun = 10, predStrThresh = 0.5)
summary(kamRes)


它说群集的最佳数目是5。它是如何确定的?我能看到一个表明这一点的图吗?

最佳答案

kamila软件包文档中


将calcNumClust设置为“ ps”会使用以下预测强度方法
Tibshirani&Walther(J. of Comp。and Graphical Stats。14(3),2005)。
没有完美的方法来估计簇数;聚苯乙烯
相对于基于BIC的大型方法
样本量。


在这种情况下,您正在使用它,而您只为numClust指定了一个值。因此,看起来您实际上并不是在选择集群的数量-您已经选择了一个集群。

要选择簇数,您必须指定感兴趣的范围,例如numClust = 2 : 7以及选择簇数的方法。

如果您还想选择群集的数量,则可能需要执行以下操作。

kamRes <- kamila(conVars, catVarsFac, numClust = 2 : 7, numInit = 10,
          calcNumClust = "ps", numPredStrCvRun = 10, predStrThresh = 0.5)


有关选择簇数的信息现在在
kamRes$nClustplot(2:7, kamRes$nClust$psValues)可能就是您想要的。

10-06 01:53