Я выполняю задачу классификации текста с помощью R, и я получаю матрицу документов с размером 22490 на 120 000 (всего 4 миллиона ненулевых записей, менее 1% записей). Теперь я хочу уменьшить размерность, используя PCA (анализ основных компонентов). К сожалению, R не может справиться с этой огромной матрицей, поэтому я храню эту разреженную матрицу в файле в «Матричном рыночном формате», надеясь использовать некоторые другие методы для PCA.Применить PCA на очень большой разреженной матрице
Так может кто-нибудь дать мне несколько советов для полезных библиотек (независимо от языка программирования), которые могли бы сделать PCA с этой крупномасштабной матрицей с легкостью, или сделать обыкновенное письмо PCA самого, другими словами, Рассчитайте ковариационной матрицы, а затем вычислить собственные значения и собственные векторы для ковариационной матрицы.
То, что я хочу, чтобы стоимость всех ПК (120000), и выбрать только лучшие N ПК, которые приходится 90% дисперсии. Очевидно, что в этом случае я должен дать порог априори установить некоторые очень маленькие значения дисперсии до 0 (в ковариационной матрице), в противном случае ковариационная матрица не будет разреженной, а ее размер будет 120 000 на 120 000, что невозможно обработать одной машиной. Кроме того, нагрузки (собственные векторы) будут чрезвычайно большими и должны храниться в разреженном формате.
Большое спасибо за любую помощь!
Примечание: Я использую машину с 24 ГБ оперативной памяти и 8 ядер процессора.
Я не уверен, что он на 100% прав, но я думаю, что MatLab может выполнить эту работу. – Anton
Если вы не получаете радости здесь, то, возможно, стоит попросить http://stats.stackexchange.com/ – NPE
@aix Спасибо за ваши советы, я перевел его на бета-версию вычислительной науки и получил полезную информацию намеки. Вы также можете следить за ним по этому [URL] (http://scicomp.stackexchange.com/questions/2313/apply-pca-on-very-large-sparse-matrix) –