R中的相关聚类

时间:2009-09-23 23:03:42

标签: r cluster-analysis nlp

我想使用correlation clustering,我认为R是一个很好的起点。

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

我的问题是:

  • 是否有现有R个功能可将其转换为使用hierarchical cluster的{​​{1}} agnes
  • 我是否必须亲自实现(简单的)简单的correlation clustering功能,如果是这样,我如何才能使其与correlation clustering良好配合?

4 个答案:

答案 0 :(得分:7)

我当然对这个问题知之甚少,但只是指出了一个方向:

  • 你看过群集包吗?它有很好的文档。特别是,请查看帮助(agnes)以获取一些建议。 Martin Maechler(R核心团队的一员)创建了这个软件包并且之前为Stack Overflow讨论做出了贡献,所以希望他能在这里提供答案。
  • hclust()函数是stats包的一部分。事实上,我认为有计划合并hclust()和agnes()。
  • 您可能还会找到this page from the Bioconductor project helpful
  • 否则,您可能会在CRAN Clustering Natural Language ProcessingMachine Learning次观看其他套餐时看到运气。

答案 1 :(得分:7)

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:1)

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

  

详细

     

agnes在第5章中有详细描述   Kaufman和Rousseeuw(1990)。   相比其他凝聚力   聚类方法,如hclust,   agnes具有以下特点:(a)   它产生了凝聚力   系数(见agnes.object)   衡量集群的数量   结构发现; (b)除了   通常的树它也提供了   横幅,一种新颖的图形显示(见   plot.agnes)。

     

agnes算法构造了一个   集群层次结构。首先,   每个观察都是一个小群集   本身。集群仅合并为止   一个大的集群仍然存在   包含所有观察结果。在每一个   阶段两个最近的集群是   合并形成一个更大的集群。

     

对于method =“average”,距离   两个集群之间的平均值   点之间的差异   在一个集群和点中   其他集群。在method =“single”中,我们   使用之间最小的差异   第一个集群中的一个点和一个   指向第二个星团(最近的   邻居方法)。什么时候   method =“完成”,我们使用最大的   一个点之间的不一致   第一个集群和一个点   第二个集群(最远的邻居   法)。

群集是一个非常大的主题,你会发现许多R实现某种形式的包。如果同时具有属性和协变量,将聚类与排序相结合有时可以产生更多洞察力。