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