2016-03-02 5 views
0

Je sais comment trouver le centre dans chaque cluster dans le clustering K-means. Mais pour la classification hiérarchique, je ne suis pas sûr de savoir comment faire dans R. Voici mes codes: d'abord, je fait ma matrice à distance en utilisant DTW Distance, et l'entrée dans R:Pour le clustering hiérarchique, comment trouver le "centre" dans chaque cluster dans R

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

Puis, je l'ai fait la classification hiérarchique (K = 10):

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

Je peux aussi regarder les éléments de chaque groupe par:

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

en ce moment, je veux regarder le « centre » (celui qui a la plus petite distance à d'autres dans le cluster) dans chaque cluster, je ne trouve pas le code R, quelqu'un peut m'aider? Merci beaucoup!

Répondre

0

Suite à l'exemple de ?hclust:

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

Vous pouvez calculer la distance par cluster, puis trouver le point le plus faible distance moyenne pour chaque groupe. Vous pouvez composer tout cela en une fonction anonyme:

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 
+0

Erreur dans as.data.frame.default (données): ne peut pas convertir automatiquement « » dist « » à un data.frame – Yiyang

+0

Merci, mais je J'ai eu ce message d'erreur. – Yiyang