Какова сложность PCA O (min (p ^ 3, n ^ 3))?

Я читал статью о Sparse PCA, которая: http://stats.stanford.edu/~imj/WEBLIST/AsYetUnpub/sparse.pdf

И в нем указано, что если у вас есть n точки данных, каждая из которых представлена ​​функциями p, то сложность PCA составляет O(min(p^3,n^3)).

Может кто-нибудь объяснить, как/почему?

Ответы

Ответ 1

Расчет ковариационной матрицы равен O (p 2 n); его разложение по собственным значениям равно O (p 3). Таким образом, сложность PCA равна O (p 2 n + p 3).

O (min (p 3 n 3)) означало бы, что вы могли бы анализировать двумерный набор данных любого размера в фиксированное время, что явно ложно.

Ответ 2

Предполагая, что ваш набор данных равен $ X\in\R ^ {nxp} $, где n: количество выборок, d: размеры выборки, вас интересует собственный анализ $ X ^ TX $, который является основной вычислительной стоимостью PCA. Теперь матрицы $ X ^ TX\in\R ^ {pxp} $ и $ XX ^ T\in\R ^ {nxn} $ имеют одинаковые min (n, p) неотрицательных собственных значений и собственных векторов. Предполагая, что p меньше n, вы можете решить собственный анализ в $ O (p ^ 3) $. Если p больше n (например, в компьютерном зрении во многих случаях размерность выборки -number of pixels- больше, чем количество доступных выборок), вы можете выполнить собственный анализ за время $ O (n ^ 3) $. В любом случае вы можете получить собственные векторы одной матрицы из собственных значений и собственные векторы другой матрицы и сделать это за время $ O (min (p, n) ^ 3) $.

$$ X ^ TX = V\Lambda V ^ T $$

$$ XX ^ T = U\Lambda U ^ T $$

$$ U = XV\Lambda ^ {-1/2} $$

Ответ 3

Ниже приведен ответ michaelt, представленный как в оригинальном LaTeX, так и в формате PNG.

Image of LaTeX answer

Код LaTeX:

Предполагая, что ваш набор данных равен $ X\in R ^ {n\times p} $, где n: количество выборок, p: размеры выборки, вас интересует собственный анализ $ X ^ TX $, который является основной вычислительной стоимостью PCA. Теперь матрицы $ X ^ TX\in\R ^ {p\times p} $ и $ XX ^ T\in\R ^ {n\times n} $ имеют одинаковые min (n, p) неотрицательных собственных значений и собственных векторов. Предполагая, что p меньше n, вы можете решить собственный анализ в $ O (p ^ 3) $. Если p больше n (например, в компьютерном зрении во многих случаях размерность выборки -number of pixels- больше, чем количество доступных выборок), вы можете выполнить собственный анализ за время $ O (n ^ 3) $. В любом случае вы можете получить собственные векторы одной матрицы из собственных значений и собственные векторы другой матрицы и сделать это за время $ O (min (p, n) ^ 3) $.