シーケンス(距離)ベースのクラスタリングのための理想的なクラスタ数の決定

StackOverflow https://stackoverflow.com//questions/22046436

質問

シーケンスベースのデータをクラスタ化するためのこれらの関数を書き込んでいます:

library(TraMineR)
library(cluster)

clustering <- function(data){
  data <- seqdef(data, left = "DEL", gaps = "DEL", right = "DEL")
  couts <- seqsubm(data, method = "CONSTANT")
  data.om <- seqdist(data, method = "OM", indel = 3, sm = couts)
  clusterward <- agnes(data.om, diss = TRUE, method = "ward")
  (clusterward)
}

rc <- clustering(rubinius_sequences)

cluster_cut <- function(data, clusterward, n_clusters, name_clusters){
  data <- seqdef(data, left = "DEL", gaps = "DEL", right = "DEL")
  cluster4 <- cutree(clusterward, k = n_clusters)
  cluster4 <- factor(cluster4, labels = c("Type 1", "Type 2", "Type 3", "Type 4"))
  (data[cluster4==name_clusters,])
}

rc1 <- cluster_cut(project_sequences, rc, 4, "Type 1")
.

しかし、ここではクラスタ数は任意に割り当てられています。特定の数のクラスタによってキャプチャされた分散量(またはいくつかの同様のメジャー)が、特定の数のクラスタで収益の減少のポイントに達し始めることを示す方法はありますか?私はスクリープロットに似ているものを想像しています。因子分析

役に立ちましたか?

解決

library(WeightedCluster)  
(agnesRange <- wcKMedRange(rubinius.dist, 2:10))
plot(agnesRange, stat = c("ASW", "HG", "PBC"), lwd = 5)
.

これは、理想的なクラスタ数とグラフとを見つけるための複数のインデックスを与えるでしょう。インデックスに関する追加情報はここで見つけることができます(クラスタの品質下): http://mephisto.unige.ch / weightedcluster/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top