Линейность PCA


35

PCA считается линейной процедурой, однако:

PCA(X)PCA(X1)+PCA(X2)++PCA(Xn),

где . Это означает, что собственные векторы, полученные PCA на матрицах данных , не суммируют до равных собственных векторов, полученных PCA, на сумму матриц данных . Но не является ли определение линейной функции что:X i X i fX=X1+X2++XnXiXif

f(x+y)=f(x)+f(y)?

Так почему же PCA считается «линейным», если оно не удовлетворяет этому основному условию линейности?


Однажды я написал или услышал (извините, я не могу вспомнить, где и когда), что PCA «принадлежит семейству линейных процедур», потому что он опирается на линейные зависимости между переменными. Он использует корреляционную матрицу Пирсона и ищет линейные комбинации наибольшей дисперсии.
Лукаш Дерило

4
Природа этого вопроса могла бы стать немного яснее, если рассмотреть более простую и рутинную установку обычной регрессии наименьших квадратов: это архетип линейной статистической процедуры. Тем не менее, процесс оценки коэффициентов наименьших квадратов является явно нелинейной функцией матрицы данных , что подтверждается формулой . (Обратите внимание, что это линейная функция вектора отклика .)β = ( Х ' х ) - 1 х ' у уXβ^=(XX)1Xyy
whuber

4
Возможно, стоит помнить, что f (x) = x + 1 тоже «линейная функция» ... но она не удовлетворяет тому, что вы только что сказали ... что должно что-то объяснять.
Мердад

Это потому, что(X1+X2)T(X1+X2)X1TX1+X2TX2
Габриэль Ромон

Ответы:


39

Когда мы говорим, что PCA - линейный метод, мы имеем в виду отображение, уменьшающее размерность из многомерного пространства в низкоразмерное пространствоR pf:xzRp . В PCA это отображение задается умножением x на матрицу собственных векторов PCA и поэтому является явно линейным (умножение матрицы является линейным): z =f( x )= Vx . Это отличается отнелинейных методов уменьшения размерности, где отображение, уменьшающее размерность, может быть нелинейным.Rkx

z=f(x)=Vx.

С другой стороны, верхних собственных векторов VR p × k вычисляются из матрицы данных XR n × p с использованием того, что вы назвали P C A ( ) в вашем вопросе: V = P C A ( X ) , и это отображение, безусловно, нелинейное: оно включает вычисление собственных векторов ковариационной матрицы, что является нелинейной процедурой. (В качестве тривиального примера, умножение X на 2kVRp×kXRn×pPCA()

V=PCA(X),
X2увеличивает ковариационную матрицу на , но ее собственные векторы остаются такими же, как они нормализованы, чтобы иметь единичную длину.)4

То, что я получил 35 голосов за этот тривиальный ответ, довольно смешно (и в основном из-за того, что эта тема некоторое время была в разделе «Горячие сетевые вопросы»).
амеба говорит восстановить Монику

5

«Линейный» может означать много вещей и не используется исключительно формально.

PCA не часто определяется как функция в формальном смысле, и поэтому не ожидается, что она будет отвечать требованиям линейной функции, если она описана как таковая. Как вы сказали, это чаще описывается как процедура, а иногда и алгоритм (хотя мне не нравится этот последний вариант). Часто говорят, что это неформальный, линейный, нечеткий способ.

Xi

XifY(α)
αRkYkY

fi

fY(α)=i=1kαiYi
Y

Yαij


3

PCA обеспечивает / является линейным преобразованием.

MPCA(X1+X2)M(X1+X2)=M(X1)+M(X2)

PCA(X1+X2)PCA(X1)PCA(X2)


Для сравнения очень простой пример процесса, который использует линейное преобразование, но не является самим линейным преобразованием:

D(v)v[Икс,Y]знак равно[1,0]

D([1,1])[0,2]

а также

D([0,1])[-1,0]

но

D([1,1]+[0,1]знак равно[1,2])[-0,78,2,09][-1,2]

это удвоение угла, которое включает вычисление углов, не является линейным и аналогично утверждению амебы, что вычисление собственного вектора не является линейным

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