Der*_*ang 14 r cluster-analysis k-means
我在R中进行kmeans聚类有两个要求:
我需要指定我自己的距离函数,现在它是Pearson Coefficient.
我想做使用平均组成员作为质心的聚类,而不是一些实际的成员.这个要求的原因是我认为使用平均值作为质心比使用实际成员更有意义,因为成员总是不在真正的质心附近.如果我错了,请纠正我.
首先我尝试了包中的kmeans函数stat,但是这个函数不允许自定义距离方法.
然后我pam在cluster包中找到了功能.该pam函数允许通过将dist对象作为参数来允许自定义距离度量,但在我看来,通过这样做,它将实际成员作为质心,这不是我所期望的.因为我认为它不能用距离矩阵进行所有距离计算.
那么在R中有一些简单的方法可以完成满足我要求的kmeans聚类吗?
rcs*_*rcs 17
检查flexclust包裹:
主函数
kcca实现了k-质心聚类分析的一般框架,支持任意距离测量和质心计算.
该软件包还包括一个功能distCor:
R> flexclust::distCor
function (x, centers)
{
z <- matrix(0, nrow(x), ncol = nrow(centers))
for (k in 1:nrow(centers)) {
z[, k] <- 1 - .Internal(cor(t(x), centers[k, ], 1, 0))
}
z
}
<environment: namespace:flexclust>
Run Code Online (Sandbox Code Playgroud)