платформа для вычисления PCA (кроме броненосца)

У меня есть большой набор данных около 200000 точки данных, где каждая точка данных содержит 132 функции. Так что в основном мой набор данных 200000 x 132,

Я сделал все вычисления, используя броненосец каркас. Тем не менее, я попытался выполнить анализ PCA, но я получил ошибку памяти, которую я не знаю, что это из-за моей оперативной памяти (8 ГБ оперативной памяти) или ее ограничение из-за самой платформы.

Я получаю следующую ошибку: requested size is too large,

Можете ли вы порекомендовать мне другую платформу для вычисления PCA, которая не имеет ограничений по размеру / памяти?

Или, если вы ранее использовали armadillo для вычисления PCA и столкнулись с этой проблемой, можете ли вы рассказать мне, как вам удалось ее решить?

2

Решение

Вы, вероятно, должны включить использование 64-битные целые числа в Armadillo, которые используются для хранения общего количества элементов и т. д.

В частности, отредактируйте файл
включают в себя / armadillo_bits / config.hpp
и раскомментируйте строку с: // #define ARMA_64BIT_WORD,
В версии 3.4 это должно быть около линии 59.

Кроме того, вы можете определить ARMA_64BIT_WORD, прежде чем включать заголовок Armadillo в вашу программу, например:

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

Обратите внимание, что ваш компилятор C ++ должен уметь обрабатывать 64-битные целые числа. У большинства компиляторов в эти дни есть это.

1

Другие решения

Других решений пока нет …