如何用R确定kamila聚类的最佳聚类数?

时间:2018-05-24 23:36:54

标签: r cluster-analysis mixed-type

我有一个混合类型的数据集,所以我想尝试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.它是如何决定的,我能看到一个表明这个的图吗?

1 个答案:

答案 0 :(得分:2)

kamila包文档

  

将calcNumClust设置为'ps'使用的预测强度方法   Tibshirani&amp; Walther(J.of Comp。and Graphical Stats.14(3),2005)。   估计集群数量没有完美的方法; PS   倾向于给出比基于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)可能就是您追求的目标。