R中的相关聚类
Posted
技术标签:
【中文标题】R中的相关聚类【英文标题】:Correlation clustering in R 【发布时间】:2010-11-30 22:28:34 【问题描述】:我想使用correlation clustering
,我认为R
是一个不错的起点。
我可以将数据作为一组大型稀疏向量或作为具有预先计算的相异矩阵的表呈现给R
。
我的问题是:
是否有现有的R
函数可以将其转换为 hierarchical cluster
和使用 agnes
的 correlation clustering
?
我是否必须手动实现(当然很简单)correlation clustering
函数,如果是这样,我如何使它与agnes
配合得很好?
【问题讨论】:
【参考方案1】:诚然,我对这个主题知之甚少,但只是为您指明一个方向:
你看过集群包吗?它有很好的文档。特别是,查看 help(agnes) 以获取一些建议。 Martin Maechler(R 核心团队的成员)创建了这个包,并为 Stack Overflow 的讨论做出过贡献,所以希望他能在这里提供答案。 hclust() 函数是 stats 包的一部分。事实上,我相信有合并 hclust() 和 agnes() 的计划。 您还可以找到this page from the Bioconductor project helpful。 否则,您可能会幸运地查看 CRAN 上的其他软件包 Clustering、Natural Language Processing 或 Machine Learning 视图。【讨论】:
没问题。当您弄清楚所有问题时,请随时将任何后续回复发布到此问题中! :)【参考方案2】:标准方法是涉及cor()
、hclust()
和plot.hclust()
。
我强烈推荐精彩的 gplots 包中的 heatmap.2。
【讨论】:
【参考方案3】:cluster 包中的agnes
函数很容易与相异矩阵一起使用。只需将“diss”参数设置为 TRUE。
如果您可以轻松计算 R 之外的相异矩阵,那么这可能就是要走的路。否则,您可以只使用 R 中的cor
函数来生成相似度矩阵(您可以从中减去 1 得到相异度矩阵)。
【讨论】:
【参考方案4】:我去http://www.rseek.org/,进入agnes算法,发现CRAN上的CLUSTER包有如下函数AGNES的函数细节。
详情
agnes 在第 5 章中有详细描述 考夫曼和卢梭 (1990)。 与其他凝聚力相比 聚类方法,例如 hclust, 艾格尼丝具有以下特点:(一) 它产生凝聚力 系数(见 agnes.object)其中 衡量聚类的数量 发现结构; (b) 除了 它还提供了通常的树 横幅,一种新颖的图形显示(见 情节.agnes)。
agnes 算法构造了一个 聚类的层次结构。首先, 每个观察都是一个小簇 本身。集群合并,直到只有 一个大集群仍然存在 包含所有的观察。在每一个 阶段两个最近的集群是 组合成一个更大的集群。
对于method="average",距离 两个簇之间的平均值是 点之间的差异 在一个集群中的点 其他集群。在method="single"中,我们 使用最小的差异 第一个集群中的一个点和一个 第二个集群中的点(最近的 邻接法)。什么时候 method="complete",我们使用最大的 点之间的差异 第一个簇和一个点 第二个集群(最远的邻居 方法)。
集群是一个相当大的话题,你会发现很多 R 包都实现了它的某种形式。当您同时拥有属性和协变量时,将聚类与排序结合起来有时可以产生更多洞察力。
【讨论】:
以上是关于R中的相关聚类的主要内容,如果未能解决你的问题,请参考以下文章