k-centroid 聚类函数将数值数据矩阵作为输入。但是,我这里只有距离矩阵,我认为 k-centroid 算法确实适用于距离矩阵。
摘自官方文档
用法
library(flexclust)
kcca(x, k, family=kccaFamily("kmeans"), weights=NULL, group=NULL,
control=NULL, simple=FALSE)
论据
x A numeric matrix of data, or an object that can be coerced to such a matrix (such as a numeric vector or a data frame with all numeric columns).
具体来说,我需要将一个距离矩阵发送到这个 kcca() 函数中。但是从书上看,它需要数据矩阵。
更新
任务
对二进制矩阵的行进行聚类。每行代表一个用户。
数据
原始数据是这样的 10^5 * 10^5 二进制矩阵
1 2 3 4 5 6 7 8 ... 10^5
_________________________
1| 0 0 1 0 1 1 1 0
2| 0 1 1 0 1 1 1 0
3| 0 0 0 1 0 1 1 0
4| 0 1 1 1 0 1 1 0
.
.
.
10^5
R 处理起来太大了,我的兴趣在于行聚类,所以我在 Java 中计算行距离并生成一个距离矩阵供 R 读取。
1 2 3 4 ...
---------------
2| 2
3| 1 3
4| 3 2 5
.
.
.
那么问题是, R中的K-centroid函数采用原始数据矩阵而不是距离矩阵。
我希望这个更新有所帮助。