向量 x 在单位向量 e 上的投影长度值 e T x e^{T }x eTx,投影向量可以表示 e T x e e^T x e eTxe 。
所以求向量 a 在另一个向量 b 的投影值可以先求向量 b 的单位向量。(画图列出cos公式: **a . e ** = |a| |e| cos = |a|cos ,即为投影长度值。)
S = ∑ i m ( x i − m ) ( x i − m ) t S = \sum_{i}^{m} (x_i-m) (x_i-m)^t S=∑im(xi−m)(xi−m)t,数据处理中,先把数据变成均值为 0 的数据分布,此时 S = ∑ i m x i x i t S = \sum_{i}^{m} x_i x_i^t S=∑imxixit,注意这是一个矩阵。 x i x_i xi是一个列向量,若 X = ( x 1 , x 2 , . . . , x m ) X = (x_1,x_2,...,x_m) X=(x1,x2,...,xm),则协方差矩阵S可以表示成为 S = X X t = ∑ i m x i x i t S =XX^t = \sum_{i}^{m} x_i x_i^t S=XXt=∑imxixit
PCA算法将寻找数据里最主要的方面来代替原始数据,从而实现降维。具体地,就是寻找一个最优的坐标系(投影方向),原始数据往这个坐标系投影后实现降维并保留大部分信息。
以下图的二维数据为例子, u 1 \textstyle u_1 u1 和 u 2 \textstyle u_2 u2两个坐标系都可以完成2维到1维的数据映射, 但是可以看出 u 1 \textstyle u_1 u1 是数据变化的主方向,选用 u 1 u1 u1 可以保留更多的数据成分,因此 u 1 u1 u1 为比 u 2 u2 u2 更优的投影方向。
找到最优方向 u 1 u1 u1 可以有两个思路:
散布矩阵的形式为: S = ∑ i = 1 m ( x i − m ) ( x i − m ) T S = \sum\limits_{i=1}^{m}(x_{i}-m)(x_{i}-m)^{T} S=i=1∑m(xi−m)(xi−m)T
若原始数据集经过中心化的,均值为0。则散布矩阵(协方差矩阵)为 ∑ = ∑ i = 1 m ( x i ) ( x i ) T \sum = \sum\limits_{i=1}^{m}(x_{i})(x_{i})^{T} ∑=i=1∑m(xi)(xi)T。
注意: 当 x i 和 x j x_{i}和x_{j} xi和xj正交时,可以注意到协方差矩阵 ∑ \sum ∑ 的特点:除了主对角线外,其余值都为0,而且 ∑ \sum ∑ 的迹就是数据的总方差。
参考 主成分分析(PCA)原理总结,很详细。
这种推导比较简单直接,简单说下思想:
由结论1,对于任意一个样本 x i x_{i} xi,在新的坐标系 W W W中的投影为 W T x i W^Tx_{i} WTxi,在新坐标系中的投影方差为 W T x i x i T W W^Tx_{i}x_{i}^TW WTxixiTW ,则总的为 ∑ i = 1 m W T x i x i T W \sum\limits_{i=1}^{m}W^Tx_{i}x_{i}^TW i=1∑mWTxixiTW ,那么要使所有的样本的投影方差和最大,注意到投影方差为常数,因此也就是最大化 ∑ = ∑ i = 1 m W T x i x i T W \sum = \sum\limits_{i=1}^{m}W^Tx_{i}x_{i}^TW ∑=i=1∑mWTxixiTW 的迹。
注:
则 最优化问题为:
a r g    m a x ⎵ W    t r ( W T X X T W )        s . t . W T W = I \underbrace{arg\;max}_{W}\;tr( W^TXX^TW) \;\;\; s.t. W^TW=I W argmaxtr(WTXXTW)s.t.WTW=I
其中, X X T XX^T XXT 即为协方差矩阵 .
对拉格朗日函数对W对导并置为0,且W^TW=I,得到
X X t W = λ W XX^t W = \lambda W XXtW=λW
这刚好是矩阵的特征值和特征向量的定义形式,最优解系w刚好是散步矩阵 X X T XX^T XXT的特征向量,问题转为求样本协方差矩阵的特征向量。
由 W T ∑ W = λ W^T\sum W = \lambda WT∑W=λ
为了最大化 W T ∑ W W^T\sum W WT∑W,选取最大的特征值 λ \lambda λ 。
有了上面的数学推导,可以知道:
通常经过特征向量变换下的数据被称为变量的主成分。最大特征值对应第一主成分。 X = ∑ w i T x w i X = \sum w_i^{T}xw_i X=∑wiTxwi, w i w_i wi 之间相互正交。
主要参考 主成分分析(PCA)原理总结。
有些时候,数据不是线性的,不能直接进行PCA降维。这里就需要用到和支持向量机一样的核函数的思想,先把数据集从n维映射到线性可分的高维N>n,然后再从N维降维到一个低维度n’, 这里的维度之间满足n’ 参考 主成分分析(PCA)原理总结。 参考 主成分分析(PCA)原理总结。 参考 主成分分析(PCA)原理总结。 PCA算法的主要优点有: 1)仅仅需要以方差衡量信息量,不受数据集以外的因素影响。 2)各主成分之间正交,可消除原始数据成分间的相互影响的因素。 3)计算方法简单,主要运算是特征值分解,易于实现。 PCA算法的主要缺点有: 1)主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。 2)方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。8.PCA算法流程
9.PCA实例
10 .PCA算法总结
11. PCA代码和应用
scikit learn 中pca 的用法