首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用r中的邻近度矩阵进行聚类

使用r中的邻近度矩阵进行聚类
EN

Stack Overflow用户
提问于 2017-02-14 01:43:33
回答 2查看 499关注 0票数 0

我有一个马氏距离的接近矩阵(相异度)。

矩阵(示例):

代码语言:javascript
复制
> dput(MD[1:5,1:5])

structure(c(0, 10.277, 8.552, 8.592, 9.059, 10.277, 0, 10.917, 
9.489, 8.176, 8.552, 10.917, 0, 8.491, 8.104, 8.592, 9.489, 8.491, 
0, 9.375, 9.059, 8.176, 8.104, 9.375, 0), .Dim = c(5L, 5L), .Dimnames = list(
    c("2", "4", "5", "6", "9"), c("X2", "X4", "X5", "X6", "X9"
    )))

矩阵有1900人,行名是一个Id。我需要对这些人进行聚类,以获得与该人的id相邻的聚类的数量。

我知道如何使用k-means进行聚类,但我不知道如何在已经有相异矩阵的情况下进行聚类。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-14 01:53:55

您可以使用分层聚类,从马氏距离矩阵开始:

代码语言:javascript
复制
MD
      X2     X4     X5    X6    X9
#2  0.000 10.277  8.552 8.592 9.059
#4 10.277  0.000 10.917 9.489 8.176
#5  8.552 10.917  0.000 8.491 8.104
#6  8.592  9.489  8.491 0.000 9.375
#9  9.059  8.176  8.104 9.375 0.000

hc <- hclust(as.dist(MD))

clusters <- cutree(hc, k = 3) # obtain 3 clusters
clusters
#2 4 5 6 9 
#1 2 3 1 3 

plot(hc)
rect.hclust(hc, k = 3, border = "red")

票数 0
EN

Stack Overflow用户

发布于 2017-02-14 02:39:53

如果我没理解错的话,使用dendextend

代码语言:javascript
复制
fit<-hclust(MD)

fit %>% as.dendrogram %>% 
  set("branches_k_color", k = 3, value = c("purple", "orange","red")) %>% 
  plot

群集#由颜色指定...从cutree传递过来的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42210209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档