【发布时间】:2011-11-23 08:30:22
【问题描述】:
我在 R 中进行 kmeans 聚类有两个要求:
我需要指定自己的距离函数,现在是皮尔逊系数。
我想做一个使用组成员的平均值作为质心的聚类,而不是一些实际的成员。 这个要求的原因是我认为使用平均值作为质心比使用实际成员更有意义,因为成员总是不在真实质心附近。如果我对此有误,请纠正我。
首先我尝试了stat包中的kmeans函数,但是这个函数不允许自定义距离方法。
然后我在cluster 包中找到了pam 函数。 pam 函数确实允许通过将 dist 对象作为参数来自定义距离度量,但在我看来,这样做会将实际成员作为质心,这不是我所期望的。因为我认为它不能只用一个距离矩阵来完成所有的距离计算。
那么在 R 中是否有一些简单的方法可以满足我的两个要求来进行 kmeans 聚类?
【问题讨论】:
-
您可以使用
vegan::designdist创建自己的索引(如果已经存在,请参见vegan::vegdist)。拥有dist对象后,您可以在 stats 包中使用hclust来使用适当的聚合方法。 -
@RomanLuštrik,感谢您的评论。我知道如何用 hclust 指定距离度量,但现在我需要知道如何用 kmeans 来做。
标签: r cluster-analysis k-means