Классический метод анализа основных компонентов (PCA) состоит в том, чтобы сделать это на матрице входных данных, столбцы которой имеют нулевое среднее значение (тогда PCA может «максимизировать дисперсию»). Это может быть легко достигнуто путем центрирования колонн. Тем не менее, когда входная матрица является разреженной, центрированная матрица теперь будет более разреженной и, если матрица очень большая, больше не будет помещаться в память. Есть ли алгоритмическое решение проблемы хранения?
10
Ответы:
Да, это возможно.
Если матрица данных не помещается в ОЗУ, это еще не конец света: существуют эффективные алгоритмы, которые могут работать с данными, хранящимися на жестком диске. См., Например, рандомизированный PCA, как описано в Halko et al., 2010, Алгоритм анализа главных компонентов больших наборов данных .
В Разделе 6.2 авторы упоминают, что они попробовали свой алгоритм на матрице данных 400k умноженных на 100 Кб, и что
Обратите внимание, что это было в старые времена магнитных жестких дисков; сегодня доступны гораздо более быстрые твердотельные накопители, поэтому, я думаю, тот же алгоритм будет работать значительно быстрее.
Смотрите также эту старую ветку для более детального обсуждения рандомизированного PCA: лучший алгоритм PCA для огромного количества функций (> 10K)? и этот большой обзор 2011 года, написанный Халко и др .: Поиск структуры со случайностью: вероятностные алгоритмы построения приближенных матричных разложений .
источник