证明
由上一篇可得到目标函数1/n × u1T XXTu1 ,并且X = [x1,x2,......,xn],XT =[x1T,x2T,......,xnT]T ,由于(XXT)T =XXT,所以XXT是对称阵
假设XXT的某一个特征值为λ,对应的特征向量为ξ,则有:
XXTξ = λξ
(XXTξ )T ξ= (λξ)Tξ
ξTXXTξ = λξTξ
ξTXXTξ = (XTξ)T(XTξ) = ||XTξ||T = λξTξ = λ||ξ||2
||XTξ||2 = λ||ξ||2 ≥ 0
故λ ≥ 0
故 XXT 是半正定的对称阵。
对于半正定阵的二次型,存在最大值。接下来求目标函数的最大值以及取最大值时u1的方向。
方法:拉格朗日乘子法
目标函数和约束条件组成最大化问题:max{u1T XXTu1},s.t. u1Tu1 =1
构造拉格朗日函数:f(u1)= (u1T XXTu1)+ λ( 1- u1Tu1 )
对u1求导:
∂f/∂u1 = 2XXTu1 -2λu1 = 0
2XXTu1 = 2λu1
所以,u1即为 XXT特征值λ对应的特征向量。将上式代入目标函数得:
u1T XXTu1 = λ u1Tu1 = λ
故取最大的特征值可得到目标值最大。求取二阶导数确定极大值:
∂2f/∂u1 = 2(XXT -λI)
当λ取最大特征值时,XXT -λI 为半负定阵。二阶导数半负定,则目标函数在最大特征值所对应的特征向量上取得最大值。所以,第一主轴方向即为第一大特征值所对应的特征向量方向。第二主轴方向为第二大特征值所对应的特征向量方向。
PCA实现
步骤:对矩阵Xm×n ,
1)进行归一化,每一行减去对应平均值;
2)计算协方差矩阵C = 1/n × XXT;
3)计算协方差矩阵C的特征值和特征向量;
4)将特征值从大到小排序;
5)保留最上面的N个特征向量;
6)将数据转换到上述N个特征向量构建的新空间中。
(假设若只选取最大特征值对应的特征向量P1,降维后的数据Y = P1TX)