Чи можливий масштабний PCA?


10

Класичний аналіз основного компонента (PCA) - це зробити на матриці вхідних даних, стовпці якої мають нульове середнє значення (тоді PCA може "максимізувати дисперсію"). Цього можна легко досягти шляхом центрування стовпців. Однак, коли вхідна матриця буде рідкою, централізована матриця тепер буде більш рідкою, і - якщо матриця дуже велика - таким чином більше не впишеться в пам'ять. Чи існує алгоритмічне рішення проблеми зберігання?


5
Навіть якщо повна матриця даних не вміщується в пам'яті, це може бути так, що або коваріація, або матриця Грама вписується в пам'ять. Цього достатньо для виконання PCA. Про який розмір матриці вхідних даних ви думаєте? Дивіться також stats.stackexchange.com/questions/35185 .
амеба

1
@amoeba: Я переглядаю зразки 500K (рядки) та функції 300K (стовпці)
Roy

Що стосується програмного забезпечення, то Apache Spark має його spark.apache.org/docs/latest/… напевно, що реалізація стосується даних, що залишилися в пам'яті
Тім

Відповіді:


11

Так, можливо.

Якщо матриця даних не вписується в оперативну пам'ять, це ще не кінець світу: є ефективні алгоритми, які можуть працювати з даними, що зберігаються на жорсткому диску. Див., Наприклад, рандомізований PCA, як описано в Halko et al., 2010, Алгоритм аналізу основних компонентів великих наборів даних .

У Розділі 6.2 автори згадують, що вони спробували свій алгоритм на матриці даних 400k разів 100k, і це

Алгоритм цього документу вимагав 12,3 годин для обробки всіх 150 ГБ цього набору даних, що зберігаються на диску, використовуючи портативний комп'ютер з 1,5 ГБ оперативної пам’яті […].

Зауважте, що це було за старих часів магнітних жорстких дисків; сьогодні доступні набагато швидші твердотілі накопичувачі, тому я думаю, той же алгоритм працював би значно швидше.

Дивіться також цю стару тему для більшого обговорення рандомізованого PCA: Найкращий алгоритм PCA для величезної кількості функцій (> 10K)? і цей великий огляд у 2011 р. Галько та ін.: Пошук структури з випадковістю: ймовірнісні алгоритми побудови приблизних матричних декомпозицій .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.