Какова сложность 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) $.