机器学习系列笔记五:主成分分析PCA[上]
文章目录
Introduction
主成分分析是一个非监督的机器学习算法:
- 主要用于数据的降维,通过降维,可以发现更便于人类理解的特征,比如在人脸识别中,就必须通过降维对数据进行处理。
- 其他应用:可视化、去噪
定义:
PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。PCA的思想是将n维特征映射到k维空间上k<n,这k维特征是全新的正交特征,是重新构造出来的k维特征,而不是简单地从n维特征中去除其余n−k维特征。
主成分分析法本质上是将特征从一组坐标系转移到了另一组坐标系
其实学过信号与系统的话,PCA和所谓的傅里叶变换,拉普拉斯变换,Z变换的作用和原理是一样的
PCA的原理
特征降维的引入
假设把右上角所表示的是特征1和特征2所组成的散点,X轴为特征1,y轴为特征2,然后通过对X轴Y轴的映射可以变为下面的两种形式,这就是一个特别简单的降维方法,对于图2,我们只需要去掉特征2,对于图3,我们是去掉特征1的考量。
然后根据特征点的密度可以推算各个特征的可区分度,故根据上图所示方案2的效果显然要比方案3的要好。
基于此,就有了下面的方案3:
用这个方式我们将二维的特征映射到了一维,只不过这个"轴"不再是传统的XY轴,利用这种方式得到的映射结果,更加趋近于原始特征的分布。
因此,问题就转换为了如何找到让这个样本(特征)间间距最大的轴
PCA的求解数学推导
首先我们需要定义样本间间距:
使用方差的形式:
V a r ( x ) = 1 m ∑ i = 1 m ( x i − x ˉ ) 2 Var(x) = \frac{1}{m}\sum_{i=1}^m(x_i-\bar{x})^2 Var(x)=m1i=1∑m(xi−xˉ)2
问题就变成了找到一个轴,使得样本空间的所有点映射到这个轴后,方差最大
从而通过主成分分析使得样本空间降维的步骤如下:
-
step.1 :将样例的均值归为0(
demean处理
)
-
step.2:求一个轴的方向 w = ( w 1 , w 2 ) w=(w_1,w_2) w=(w1,w2),使得我们所有的样本在映射到 w w w 之后,有:
V a r ( X p r o j e c t ) = 1 m ∑ i = 1 m ∣ ∣ X p r o j e c t ( i ) − X ˉ p r o j e c t ∣ ∣ 2 Var\left( X_{project} \right) =\frac{1}{m}\sum_{i=1}^m{|}|X_{project}^{\left( i \right)}-\bar{X}_{project}||^2 Var(Xproject)=m1∑i=1m∣∣Xproject(i)−Xˉproject∣∣2 最大,而 X ˉ = 0 \bar{X}=0 Xˉ=0,故我们的目标是:
m a x { V a r ( X p r o j e c t ) } = m a x { 1 m ∑ i = 1 m ∣ ∣ X p r o j e c t ( i ) ∣ ∣ 2 } max\{Var\left( X_{project} \right)\} =max\{\frac{1}{m}\sum_{i=1}^m{|}|X_{project}^{\left( i \right)}||^2\} max{ Var(Xproject)}=max{ m1i=1∑m∣∣Xproject(i)∣∣2}
其中, ∣ ∣ X p r o j e c t ( i ) ∣ ∣ ||X_{project}^{(i)}|| ∣∣Xproject(i)∣∣可以根据向量乘法的定义,用如下定义所表示:
∣ ∣ X p r o j e c t ( i ) ∣ ∣ = X ( i ) ⋅ w ||X_{project}^{(i)}|| = X^{(i)} \cdot w ∣∣Xproject(i)∣∣=X(i)⋅w
目标就变为了:
max w { V a r ( X p r o j e c t ) } = max w { 1 m ∑ i = 1 m ( X ( i ) ⋅ w ) 2 } \underset{w}{\max}\left\{ Var\left( X_{project} \right) \right\} =\underset{w}{\max}\left\{ \frac{1}{m}\sum_{i=1}^m{\left( X^{\left( i \right)}\cdot w \right)}^2 \right\} wmax{ Var(Xproject)}=wmax{ m1i=1∑m(X(i)⋅w)2}显然主成分分析就变为了一个目标函数的最优化问题,由于是使得目标函数最大化,所以可以采用梯度上升法解决该优化问题。
梯度上升法解决主成成分分析问题
根据上面的分析,我们可以将目标函数定义为: