在R中的相关聚类

9
我想使用相关聚类,并且我觉得R是一个不错的起点。
我可以将数据呈现给R作为一组大而稀疏的向量,或者作为具有预先计算的不相似度矩阵的表格。
我的问题是:
  • 是否存在现有的R函数将其转换为使用相关聚类的agnes分层聚类?
  • 如果需要手动实现相关聚类函数(虽然很简单),那么如何使其与agnes协同工作?
4个回答

8

我承认对这个主题知之甚少,但是只是为了指引你的方向:

  • 你是否看过cluster包?它有非常好的文档。特别是查看help(agnes)以获取一些建议。Martin Maechler(R核心团队成员)创建了该包,并在Stack Overflow讨论中做出了贡献,因此希望他能在这里提供答案。
  • hclust()函数是stats包的一部分。实际上,我认为计划合并hclust()和agnes()。
  • 您还可以在Bioconductor项目的此页面找到有用的信息。
  • 否则,您可以尝试查看CRAN上的其他软件包聚类自然语言处理机器学习视图。

没问题。当你解决了所有问题,随时回到这个问题中发表任何后续内容! :) - Shane

7

标准方法通常涉及使用cor()hclust()plot.hclust()
我强烈推荐使用美妙的gplots包中的heatmap.2。


2

使用cluster包中的agnes函数并结合一个不相似度矩阵非常简单,只需要设置“diss”参数为TRUE即可。

如果你可以在R之外轻松计算出不相似度矩阵,那么这可能是更好的方法。否则,你可以使用R中的cor函数来生成相似度矩阵(通过从1中减去可得到不相似度矩阵)。


1

我访问了http://www.rseek.org/,输入了AGNES算法,并发现CRAN上的CLUSTER包有关于函数AGNES的以下详细信息。

细节 agnes在Kaufman和Rousseeuw(1990)的第5章中有详细描述。与其他凝聚聚类方法(如hclust)相比,agnes具有以下特点:(a)它产生凝聚系数(请参见agnes.object),该系数测量发现的聚类结构的数量;以及(b)除了通常的树之外,它还提供了横幅,这是一种新颖的图形显示(请参见plot.agnes)。
agnes算法构建聚类的层次结构。首先,每个观察值本身都是一个小集群。合并集群,直到只剩下一个包含所有观察值的大集群。在每个阶段,将两个最近的集群组合成一个更大的集群。
对于method =“average”,两个集群之间的距离是一个集群中的点与另一个集群中的点之间差异的平均值。在method =“single”中,我们使用第一个集群中的点和第二个集群中的点之间的最小不相似度(最近邻方法)。当method =“complete”时,我们使用第一个集群中的点和第二个集群中的点之间的最大不相似度(最远邻方法)。

聚类是一个相当庞大的主题,你会发现有很多R软件包实现了一些形式的聚类。当你同时拥有属性和协变量时,将聚类与排序结合起来有时可以提供更多的见解。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接