Contenu connexe
Plus de osamu morimoto (6)
クラスタ数の決め方(Tokyo.r#60)
- 4. {cclust}パッケージのclustIndex()
● clustIndex() は cclust() でクラスタリングした結果に対して指標値を返す。
● 15種の指標を返すが、calinski(疑似F統計量)がおすすめ。
library(cclust)
DAT <- as.matrix(iris[,-5])
MAX <- 10
res <- data.frame(matrix(0,MAX,15))
for (i in 2:MAX){
clust <- cclust(DAT, i)
temp <- clustIndex(clust, DAT)
if(i==2) colnames(res) <-
names(temp)
res[i,] <- temp
}
plot(res$calinski, type="b")
- 5. {vegan} パッケージの cascadeKM()
● cascadeKM() は calinski に基づいて最適と考えられるクラスタリング結果を返す。
library(vegan)
# 試行するクラスタ数の最小数と最大数を与える
# デフォルトは calinski だが ssi も使える
res <- cascadeKM(iris[,-5], 2, 10)
best <- plot(res)
best$x[,best$best.grps]
- 6. {clusterSim} パッケージの cluster.Sim()
● cluster.Sim()は複数の標準化手法、距離、クラスタリング手法を組み合わせて最
適なクラスタリングを探索する。引数の指定が独特なのでヘルプからたどれる
clusterSim_details.pdf を見ながら設定すること。
library(clusterSim)
cluster.Sim(iris[,-5], p=1,
min=2, max=10, "G1",
outputHtml="results.iris")
# これで3,312通りのクラスタリングが試される。
# 非力なマシンでは非常に時間がかかるので注意。