Возможна ли крупномасштабная PCA?


10

Классический метод анализа основных компонентов (PCA) состоит в том, чтобы сделать это на матрице входных данных, столбцы которой имеют нулевое среднее значение (тогда PCA может «максимизировать дисперсию»). Это может быть легко достигнуто путем центрирования колонн. Тем не менее, когда входная матрица является разреженной, центрированная матрица теперь будет более разреженной и, если матрица очень большая, больше не будет помещаться в память. Есть ли алгоритмическое решение проблемы хранения?


5
Даже если полная матрица данных не помещается в память, вполне может быть, что либо ковариация, либо матрица Грама вписывается в память. Этого достаточно, чтобы выполнить PCA. О каком размере матрицы входных данных вы думаете? Смотрите также stats.stackexchange.com/questions/35185 .
амеба

1
@amoeba: я просматриваю 500K выборок (строки) и 300K функций (столбцы)
Рой

Что касается программного обеспечения, то у Apache Spark есть его spark.apache.org/docs/latest/…, который наверняка работает с данными вне памяти
Тим

Ответы:


11

Да, это возможно.

Если матрица данных не помещается в ОЗУ, это еще не конец света: существуют эффективные алгоритмы, которые могут работать с данными, хранящимися на жестком диске. См., Например, рандомизированный PCA, как описано в Halko et al., 2010, Алгоритм анализа главных компонентов больших наборов данных .

В Разделе 6.2 авторы упоминают, что они попробовали свой алгоритм на матрице данных 400k умноженных на 100 Кб, и что

Алгоритм настоящей статьи потребовал 12,3 часа для обработки всех 150 ГБ этого набора данных, хранящихся на диске, с использованием портативного компьютера с 1,5 ГБ ОЗУ [...].

Обратите внимание, что это было в старые времена магнитных жестких дисков; сегодня доступны гораздо более быстрые твердотельные накопители, поэтому, я думаю, тот же алгоритм будет работать значительно быстрее.

Смотрите также эту старую ветку для более детального обсуждения рандомизированного PCA: лучший алгоритм PCA для огромного количества функций (> 10K)? и этот большой обзор 2011 года, написанный Халко и др .: Поиск структуры со случайностью: вероятностные алгоритмы построения приближенных матричных разложений .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.