我正在使用R进行kmeans聚类,并有两个要求:
我需要指定自己的距离函数,现在是皮尔逊系数。
我想要进行聚类,使用组成员的平均值作为质心,而不是实际的成员。 这个要求的原因是,我认为使用平均值作为质心比使用实际成员更有意义,因为成员通常不接近真正的质心。如果我对此有误,请纠正我。
首先,我尝试了 stat
包中的 kmeans
函数,但该函数不允许自定义距离方法。
然后我发现 cluster
包中的 pam
函数。通过接受一个dist
对象作为参数,pam
函数允许自定义距离度量,但我觉得通过这样做它采用了实际成员作为质心,这并不是我所期望的。因为我认为它不能仅通过距离矩阵来完成所有的距离计算。
那么,在R中有没有一些简单的方法可以满足我同时满足这两个要求的kmeans聚类?
vegan::designdist
来创建自己的指数(如果已经存在,也可以查看vegan::vegdist
)。在获得dist
对象之后,您可以使用统计包中的hclust
来使用适当的聚合方法。 - Roman Luštrik