1

我想在R中运行聚类练习。我使用的算法是apcluster()。我使用的脚本是:apcluster in R:内存限制

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的内存限制。我的问题是,是否有任何解决方法在我的数据集上运行apcluster(),其中有10万行使用可用RAM,或者我缺少在R中运行apcluster时需要注意的事项?

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

+0

对于这种大小的数据集,您不希望使用需要O(n2)存储器的算法,甚至可能需要O(n³)时间。例如,请尝试'dbscan'软件包。 –

回答

0

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