利用Daisy函数和Gower相似性确定最佳聚类数

利用Daisy函数和Gower相似性确定最佳聚类数,r,cluster-computing,r-daisy,R,Cluster Computing,R Daisy,我试图将250个物种的行为特征归纳为生活史策略。性状数据包括数值变量和名义变量。我对R和聚类分析比较陌生,但我相信找到这些点的距离的最佳选择是在daisy函数中使用gower相似性方法。1) 这是最好的方法吗 一旦我有了这些距离,我想找到重要的集群。我已经研究过pvclust,并且喜欢它能给我集群的力量。但是,我无法修改代码以接受以前使用daisy进行的距离测量。我尝试遵循此处给出的建议并使用此处获得的代码,但未成功 2) 有人能帮我修改现有代码以接受距离测量吗 3) 或者,有没有其他更好的方法

我试图将250个物种的行为特征归纳为生活史策略。性状数据包括数值变量和名义变量。我对R和聚类分析比较陌生,但我相信找到这些点的距离的最佳选择是在daisy函数中使用gower相似性方法。1) 这是最好的方法吗

一旦我有了这些距离,我想找到重要的集群。我已经研究过pvclust,并且喜欢它能给我集群的力量。但是,我无法修改代码以接受以前使用daisy进行的距离测量。我尝试遵循此处给出的建议并使用此处获得的代码,但未成功

2) 有人能帮我修改现有代码以接受距离测量吗

3) 或者,有没有其他更好的方法来确定重要集群的数量


我提前感谢大家的帮助。

您可以使用Zahn算法查找群集。基本上,它是一个最小生成树和一个删除最长边的函数

一些评论

大约1)

这是处理不同类型数据的好方法

您还可以在数据集中创建尽可能多的新行,并将1/0放在需要的位置。例如,如果有3个标称值,例如“爬行动物”、“哺乳动物”和“鸟类”,则可以更改具有2列(数字、标称)的初始数据集 对于具有4列(数字、数字(表示爬行动物)、数字(表示哺乳动物)、数字(表示鸟类))的新实例(23.4,“哺乳动物”)将映射到(23.4,0,1,0)

使用此映射,您可以处理“正常”距离(确保数据标准化,以便没有列因其大/小值而主导其他列)

大约2)

daisy返回一个类型不同的元素,您可以在集群包中的其他集群算法中使用它(也许您不必实现更多东西)。例如,函数pam可以直接获取daisy返回的对象

大约3)

聚类确实是主观的,大多数聚类算法都依赖于初始条件,因此“重要聚类”并不是一个有些人不喜欢使用的术语。Pam在您的情况下可能很有用,因为集群使用MEDOID居中,这对标称数据很好(因为它是可解释的)。例如,K-means的缺点是质心是不可解释的(1/2爬行动物1/2哺乳动物是什么意思?)pam构建以实例为中心的集群,这对于解释目的很好

关于pam: