我正在尝试在R中运行聚类练习。我使用的算法是apcluster()。我使用的脚本是:

s1        <- negDistMat(df, r=2, method="euclidean")
apcluster <- apcluster(s1)


我的数据集大约有10万行。运行脚本时,出现以下错误:


  Error in simpleDist(x[, sapply(x, is.numeric)], sel, method = method, : negative length vectors are not allowed


当我在线搜索时,我发现由于我的RAM的内存限制而导致出现负长度向量错误。我的问题是,是否有任何解决方法可在具有可用RAM的10万行的数据集上运行apcluster(),还是我缺少在R中运行apcluster时需要注意的问题?

我有一台具有8 GB RAM的机器。

最佳答案

apcluster()方法中实现的相似性传播的标准版本永远不会在该大小的数据上成功运行。一方面,相似性矩阵(您的代码示例中的s1)将具有100K x 100K = 10G的条目。另一方面,计算时间将过多。我建议您改用apclusterL()

08-28 21:46