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