2

我有一个围绕200000数据点的大型数据集,其中每个数据点都包含132特征。所以基本上我的数据集是200000 x 132.

我已经使用犰狳框架完成了所有的计算。但是,我尝试进行 PCA 分析,但我收到了一个内存错误,我不知道这是因为我的 RAM 内存(8 GB 的 Ram)还是由于框架本身的限制。

我收到以下错误:requested size is too large

你能推荐我另一个没有大小/内存限制的 PCA 计算框架吗?

或者,如果您以前使用犰狳进行 PCA 计算并遇到此问题,您能告诉我您是如何设法解决的吗?

4

1 回答 1

1

您可能需要在 Armadillo 中启用64 位整数,用于存储元素的总数等。

具体来说,编辑文件 include/armadillo_bits/config.hpp 并取消注释该行:// #define ARMA_64BIT_WORD。在 3.4 版中,这应该在第 59 行附近。

或者,您可以在程序中包含 Armadillo 标头之前定义 ARMA_64BIT_WORD,例如:

#define ARMA_64BIT_WORD
#include <armadillo>
#include <iostream>
...

请注意,您的 C++ 编译器必须能够处理 64 位整数。现在大多数编译器都有它。

于 2012-11-21T15:04:03.447 回答