R中的apcluster:内存限制
Posted
技术标签:
【中文标题】R中的apcluster:内存限制【英文标题】:apcluster in R: Memory limitation 【发布时间】:2017-12-10 20:11:18 【问题描述】:我正在尝试在 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的内存限制,会出现负长度向量错误。我的问题是,是否有任何解决方法可以在具有 10 万行可用 RAM 的数据集上运行 apcluster()
,或者我是否遗漏了在 R 中运行 apcluster
时需要注意的东西?
我有一台 8 GB RAM 的机器。
【问题讨论】:
在这种大小的数据集上,您不想使用需要 O(n²) 内存甚至 O(n³) 时间的算法。例如,请尝试使用dbscan
包。
【参考方案1】:
在apcluster()
方法中实现的标准版本的相似性传播永远不会成功地在该大小的数据上运行。一方面,相似度矩阵(代码示例中的 s1)将有 100K x 100K = 10G 个条目。另一方面,计算时间会过多。我建议你改用apclusterL()
。
【讨论】:
以上是关于R中的apcluster:内存限制的主要内容,如果未能解决你的问题,请参考以下文章
NGXS store 中的数据是如何存储的? ngxs store 的内存限制是多少? ngxs 在浏览器中存储内存在哪里?