hclust大小限制?(hclust size limit?)

2019-08-01 23:15发布

我是新来的R.我想关于50K项目运行hclust()。 我有10列,比较和50K行数据。 当我试图分配距离矩阵,我得到:“无法分配5GB的载体”。

是否有大小限制吗? 如果是这样,我怎么去这样做的东西这么大一个集群?

编辑

我结束了增加max.limit并增加了机器的内存到8GB,并似乎已经固定它。

Answer 1:

经典分级聚类方法是O(n^3)在运行时和O(n^2)在存储器中的复杂性。 所以,是的,他们规模非常糟糕的大型数据集。 显然,任何需要的距离矩阵的物化是在O(n^2)或更差。

请注意,有如早产和CLINK层次聚类的一些特例,在运行O(n^2)并根据实施也可能只需要O(n)内存。

你可能想寻找到更现代的聚类算法。 在运行任何O(n log n)或更好的应为你工作。 有充分的理由使用层次聚类:通常是噪音(即它并没有真正知道该怎么做的异常值),而敏感,其结果是很难解释的大型数据集(聚类图都不错,但仅适用于小数据集)。



Answer 2:

大小限制是由硬件和软件设置,并且您还没有给予足够的细节多说。 在有足够的资源,一台机器,你就不会收到此错误。 为什么不尝试潜水前的10%的样品放入池中的深水区? 也许开始:

reduced <- full[ sample(1:nrow(full), nrow(full)/10 ) , ]


文章来源: hclust size limit?