Я выполняю задачу классификации текста с R, и я получаю матрицу документа с размером 22490 на 120 000 (всего 4 миллиона ненулевых записей, менее 1% записей). Теперь я хочу уменьшить размерность, используя PCA (анализ основных компонентов). К сожалению, R не может справиться с этой огромной матрицей, поэтому я храню эту разреженную матрицу в файле в "Матричном рыночном формате", надеясь использовать некоторые другие методы для PCA.
Так может ли кто-нибудь дать мне несколько советов по полезным библиотекам (независимо от языка программирования), которые могли бы легко сделать PCA с этой крупномасштабной матрицей или сделать длинный PCA, другими словами, вычислить ковариационной матрицы, а затем вычислить собственные значения и собственные векторы для ковариационной матрицы.
Я хочу, чтобы вычислил все ПК (120 000) и выберите только верхние N ПК, на которые приходится 90% -ная дисперсия. Очевидно, что в этом случае я должен дать порог априори установить некоторые очень маленькие значения дисперсии до 0 (в ковариационной матрице), в противном случае ковариационная матрица не будет разреженной, а ее размер будет 120 000 на 120 000, что невозможно обработать одной машиной. Кроме того, нагрузки (собственные векторы) будут чрезвычайно большими и должны храниться в разреженном формате.
Большое спасибо за любую помощь!
Примечание. Я использую машину с 24 ГБ оперативной памяти и 8 ядер процессора.