在r中使用邻近矩阵进行聚类

在r中使用邻近矩阵进行聚类,r,cluster-computing,mahalanobis,R,Cluster Computing,Mahalanobis,我有一个马氏距离的邻近矩阵(相异性) 矩阵(样本): 矩阵有1900人,行名是一个Id。 我需要对这些人进行聚类,并在其id旁边获得一个聚类编号 我知道如何使用k-均值聚类,但我不知道当你已经有一个相异矩阵时如何聚类。你可以使用层次聚类,从马氏距离矩阵开始: 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

我有一个马氏距离的邻近矩阵(相异性)

矩阵(样本):

矩阵有1900人,行名是一个Id。 我需要对这些人进行聚类,并在其id旁边获得一个聚类编号


我知道如何使用k-均值聚类,但我不知道当你已经有一个相异矩阵时如何聚类。

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

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")
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如果我理解正确,请使用
dendextend

fit<-hclust(MD)

fit %>% as.dendrogram %>% 
  set("branches_k_color", k = 3, value = c("purple", "orange","red")) %>% 
  plot
fit%as.dendrogram%>%
设置(“分支颜色”,k=3,值=c(“紫色”、“橙色”、“红色”))%>%
情节

簇#由颜色指定。。。从
cutree

传下来的你所说的“一个簇的数目”是什么意思?@d.b不是特征选择的pca吗?它对集群有什么作用?@thisisrg我是说ID5集群nu。4 ID345集群nu。1,但作为一张桌子。@d.b tnx,我会查出来的。tnx,我会试试的。问题-高度代表什么?我的意思是什么比例?你必须在hclust中指定as.dist吗?我认为它已经接受了一个相异矩阵,它已经是一个相异矩阵,但它在其他方面不起作用。我不明白仅仅通过MD是怎么不起作用的。我在下面做了一次尝试。我不确定原因,但我得到:if(is.na(n)| n>65536L)stop(“size不能是na也不能超过65536”)中的错误:需要TRUE/FALSE时缺少值
fit<-hclust(MD)

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