2009-09-23 74 views
9

我想使用correlation clustering和我的数字R是一个很好的开始。R中的相关聚类

我可以将数据作为一组大的稀疏向量或作为具有预先计算的相异性矩阵的表格呈现给R

我的问题是:

  • 都存在现有R功能与使用correlation clusteringagnes变成一个hierarchical cluster
  • 我将不得不手动执行(不可否认的)correlation clustering函数,如果是这样的话,我该如何使它与agnes一起玩呢?

回答

7

我固然不是很了解这个问题,但只是把你指向一个方向:

  • 你看着集群包?它有非常好的文档。特别是,看看帮助(agnes)的一些建议。 Martin Maechler(R核心团队的成员)创建了该软件包,并对之前的Stack Overflow讨论做出了贡献,所以希望他会在这里提供答案。
  • hclust()函数是stats包的一部分。事实上,我相信有计划合并hclust()和agnes()。
  • 您可能还会发现this page from the Bioconductor project helpful
  • 否则,您可能会看到CRAN上的其他程序包有一些运气Clustering,Natural Language ProcessingMachine Learning的意见。
+0

感谢您的参考 – daveb 2009-09-24 17:22:52

+0

没问题。当你想出所有的东西时,随时发布任何后续回复到这个问题! :) – Shane 2009-09-24 21:30:13

7

标准的做法是一个涉及cor()hclust()plot.hclust()。 我强烈推荐heatmap.2从美妙的gplots包。

1

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

详细

艾格妮丝在第5章Kaufman和Rousseeuw(1990)的 被充分地描述。 相比其他凝聚 聚类方法如hclust, 艾格尼丝具有以下特征:(a) 它产生的凝聚 系数(参见agnes.object),其 措施发现聚类 结构的量;和(b)除了通常的树木 之外,它还提供了 横幅,一种新颖的图形显示(参见 plot.agnes)。

agnes算法构造一个聚类的层次结构 。起初, 每个观察是由 本身的一个小集群。合并群集,直到只有 一个大群集仍然存在,其中 包含所有的观察结果。在每个 阶段,两个最近的聚类组合为 ,以形成一个更大的聚类。

对于方法=“平均”,该距离 两者之间簇是 的相异性的 其它群集中的点 在一个簇和点之间的平均。在method =“single”中,我们 使用第一个簇中的一个点与第二个簇中的 点(最接近的 邻居方法)之间的最小差异性 。当 method =“complete”时,我们使用 第一个簇中的点与 第二个簇(最远的邻居 方法)之间的最大 差异性。

集群是一个相当巨大的话题,你会发现R的许多包实现它的一些形式。当你有属性和协变量时,把聚类和协调结合起来有时可以产生更多的见解。

2

集群包中使用差异矩阵很容易使用agnes函数。只需将“diss”参数设置为TRUE即可。

如果你可以很容易地计算R之外的相异矩阵,那么这可能是一条路。否则,可以使用R中的cor函数来生成相似度矩阵(从中可以通过从1中减去得到相异度矩阵)。