目标
找到一个线性变换,将数据投影到低维空间,使得投影后的数据方差最大。
方法
设X∈Rn×p,每一行表示一个p维的样本,n是样本数,p是特征数。Xi表示第i个样本,Xi∈Rp被视作列向量。
我们希望找到一个单位向量 w∈Rp,使得数据在这个方向上的方差最大:Var(Xw)
X:=n1i=1∑nXi
X~:=X−1XT
Xw=n1i=1∑n(Xw)i=n1i=1∑nXiTw=XTw
Var(Xw)=n−11(Xw−1Xw)T(Xw−1Xw)=n−11(Xw−1XTw)T(Xw−1XTw)=n−11(X~w)T(X~w)=n−11wTX~TX~w
Σ:=X~TX~
由于Σ是对称矩阵,因此Σ可以分解为Σ=QΛQT,其中Q是正交矩阵,Λ是对角矩阵。Λ=diag(λ1,λ2,⋯,λp),且λ1≥λ2≥⋯≥λp≥0。
z:=QTw
最大化Var(Xw)等价于最大化wTX~TX~w,即最大化wTΣw,等价于最大化wTQΛQTw,即最大化zTΛz,即最大化∑i=1pλizi2且∥z∥2=1。
易得当z=(1,0,⋯,0)T时,wTΣw取得最大值。
QTww=(1,0,⋯,0)T=Q(1,0,⋯,0)T
也就是w为Σ的最大的特征值对应的特征向量。将此w记作w1
接下来寻找使得方差第二大的方向w2。且要与w1正交。
因为Q为正交矩阵,所以若w2与w1正交,则QTw2与QTw1正交,即QTw2的第一个分量为0。
易得w2为Σ的第二个特征值对应的特征向量。