文章目录
主成分分析 PCA
1. 结论
1. 单位向量的投影表示:
向量 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 ,即为投影长度值。)
2. 散布(协方差)矩阵
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
2. PCA算法推导思想
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 可以有两个思路:
- 样本点到投影平面的距离足够近(最小化投影距离法)
- 样本点在这个直线上的投影能尽可能的分开(最大化总投影方差)。
3. 散布矩阵(协方差矩阵)
散布矩阵的形式为:
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 ∑ 的迹就是数据的总方差。
4. PCA理论推导 -----最大化投影方差法
参考 主成分分析(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 的迹。
注:
- W W W的每一个向量 w j w_j wj是标准正交基:模为1,且正交。
- 投影前的数据是经过中心化的,均值为0。
则 最优化问题为:
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的特征向量,问题转为求样本协方差矩阵的特征向量。
5. 为什么是最大特征值对应的特征向量?
由
W
T
∑
W
=
λ
W^T\sum W = \lambda
WT∑W=λ
为了最大化
W
T
∑
W
W^T\sum W
WT∑W,选取最大的特征值
λ
\lambda
λ 。
有了上面的数学推导,可以知道:
- 特征值对应的特征向量就是理想中想取得正确的坐标轴,而特征值就等于数据在旋转之后的坐标上对应维度上的方差。
- 所以,在数据挖掘中,就会直接用特征值来描述对应特征向量方向上包含的信息量,而某一特征值除以所有特征值的和的值就为:该特征向量的方差贡献率(方差贡献率代表了该维度下蕴含的信息量的比例)。
矩阵乘法的意义
- 矩阵乘法的意义:引用《线性代数的几何意义》的描述:“矩阵乘法对应了一个变换,是把任意一个向量变成另一个方向或长度都大多不同的新向量。在这个变换的过程中,原向量主要发生旋转、伸缩的变化。如果矩阵对某一个向量或某些向量只发生伸缩变换,不对这些向量产生旋转的效果,那么这些向量就称为这个矩阵的特征向量,伸缩的比例就是特征值。
6. 主成分
通常经过特征向量变换下的数据被称为变量的主成分。最大特征值对应第一主成分。 X = ∑ w i T x w i X = \sum w_i^{T}xw_i X=∑wiTxwi, w i w_i wi 之间相互正交。
7.核主成分分析 KPCA
主要参考 主成分分析(PCA)原理总结。
有些时候,数据不是线性的,不能直接进行PCA降维。这里就需要用到和支持向量机一样的核函数的思想,先把数据集从n维映射到线性可分的高维N>n,然后再从N维降维到一个低维度n’, 这里的维度之间满足n’<n<N。
8.PCA算法流程
参考 主成分分析(PCA)原理总结。
9.PCA实例
参考 主成分分析(PCA)原理总结。
10 .PCA算法总结
参考 主成分分析(PCA)原理总结。
PCA算法的主要优点有:
1)仅仅需要以方差衡量信息量,不受数据集以外的因素影响。
2)各主成分之间正交,可消除原始数据成分间的相互影响的因素。
3)计算方法简单,主要运算是特征值分解,易于实现。
PCA算法的主要缺点有:
1)主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。
2)方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。
11. PCA代码和应用
- 数据进行压缩,去噪。
scikit learn 中pca 的用法