0

K-means クラスタリングで各クラスターの中心を見つける方法を知っています。しかし、階層的クラスタリングの場合、R でそれを行う方法がわかりません。コードは次のとおりです。まず、DTW 距離を使用して距離行列を作成し、R に入力します。

DTW<-read.csv(file.choose(), head=T, row.names=1)
DTWS2N <- as.dist(as(DTW, "matrix"))

次に、階層的クラスタリング (K=10) を実行しました。

hc <- hclust(DTWS2N)
plot(hc)
groups <- cutree(hc, k=10)
rect.hclust(hc, k=10, border="red")

次の方法で、各クラスター内の要素を確認することもできます。

d = data.frame(Cluster_ID = cutree(hc,k=10))

今、各クラスターの「中心」(クラスター内で他の人との距離が最も小さい人) を見たいのですが、R コードが見つかりません。誰か助けてもらえますか? どうもありがとうございました!

4

1 に答える 1

1

の例に続き?hclustます。

data(UScitiesD)
mds2 <- -cmdscale(UScitiesD)
hcity.D2 <- hclust(UScitiesD, "ward.D2")

クラスターごとに距離を計算してから、各クラスターの平均距離が最小のポイントを見つけることができます。そのすべてを無名関数に構成できます。

lapply(by(mds2, cutree(hcity.D2, 4), dist), 
  function(x) which.min(colMeans(as.matrix(x))))
$`1`
Washington.DC 
            4 

$`2`
Denver 
     1 

$`3`
SanFrancisco 
           2 

$`4`
Miami 
    1 
于 2016-03-02T22:06:48.467 に答える