9

I'd like to use correlation clustering and I figure R is a good place to start.

I can present the data to R as a set of large, sparse vectors or as a table with a pre-computed dissimilarity matrix.

My questions are:

  • are there existing R functions to turn this into a hierarchical cluster with agnes that uses correlation clustering?
  • will I have to implement the (admittedly simple) correlation clusteringfunction by hand, if so how do I make it play well with agnes?
4

4 回答 4

8

诚然,我对这个主题知之甚少,但只是为您指明一个方向:

于 2009-09-24T02:21:34.083 回答
7

标准方法是涉及cor()和。我强烈推荐精彩的 gplots 包中的 heatmap.2。hclust()plot.hclust()

于 2009-09-24T07:58:00.830 回答
2

使用具有相异矩阵的cluster包中的agnes函数很容易。只需将“diss”参数设置为 TRUE。

如果您可以轻松计算 R 之外的相异矩阵,那么这可能就是要走的路。否则,您可以只使用corR 中的函数来生成相似度矩阵(从中可以通过从 1 中减去来得到相异度矩阵)。

于 2009-11-03T23:15:23.427 回答
1

我去http://www.rseek.org/输入agnes算法,发现CRAN上的CLUSTER包有以下功能AGNES的功能细节。

细节

在 Kaufman 和 Rousseeuw (1990) 的第 5 章中全面描述了 agnes。与 hclust 等其他凝聚聚类方法相比,agnes 具有以下特点: (a) 它产生凝聚系数(见 agnes.object),衡量找到的聚类结构的数量;(b) 除了通常的树之外,它还提供横幅,一种新颖的图形显示(参见 plot.agnes)。

agnes 算法构建了一个聚类层次结构。起初,每个观测值本身就是一个小集群。合并集群,直到只剩下一个包含所有观测值的大集群。在每个阶段,两个最近的集群组合在一起形成一个更大的集群。

对于method="average",两个聚类之间的距离是一个聚类中的点与另一聚类中的点之间的差异的平均值。在method="single"中,我们使用第一个簇中的点与第二个簇中的点之间的最小差异(最近邻法)。当 method="complete" 时,我们使用第一个集群中的一个点和第二个集群中的一个点之间的最大差异(最远邻居方法)。

集群是一个相当大的话题,你会发现很多 R 包都实现了它的某种形式。当您同时拥有属性和协变量时,将聚类与排序结合起来有时可以产生更多的洞察力。

于 2009-09-24T14:36:44.773 回答