1.PCA
主成分分析(Principal Component Analysis,PCA)是非常经典的降维算法,属于无监督降维,做机器学习的应该都有所了解。但是,除了基本的PCA推导和应用之外,还有SparsePCA、KernelPCA、TruncatedSVD等等,另外PCA和特征值、奇异值的关系以及SparsePCA和字典学习(Dict Learning,Lasso)的关系等等,也是比较有趣的事情。
1.1 PCA的简介
PCA是一种线性的降维方法,并且是利用正交变换作为映射矩阵,主要步骤是:对于一个高维空间的数据样本 ,利用正交矩阵将样本映射到低维空间 ,其中d<<n 起到了降维的作用。
那么PCA该如何选择矩阵 A_{nd}呢?
1.为什么要最大方差?
考虑下面数据样本为二维的情形,即n = 2,在Figure 1中,数据样本呈现椭圆分布,我们现在要把二维降为一维d = 1,相当于是选择一个单位向量 ,将 所有的数据点投影到这个向量上来,如图中所示,画出的四个红色带箭头的线条代表的是候选向量,那么要选哪一个作为最优的呢?

PCA的假设偏好是:数据在低维空间越分散越好。假设我们选择了上图中朝向为左上方的向量,那么将数据点全部投影到这个方向上面,那么就会导致数据点都“拥挤”在了一起,对后续分类或其它任务造成了很不友好的影响。所以,PCA选的是图中朝向右上方比较粗的那个作为最合适的 [图片上传失败...(image-8aef14-1586173690384)] ,这样得到的映射后的数据点很分散,对后续任务有利。
我们想要最大化方差,通过一个单位向量w使得投影到这个向量的值方差最大,达到分散的效果。(选择单位向量的原因是我们只关心其方向,并不关心其大小。

其中。
其中投影数据的方差:
其中S是数据的协方差矩阵,定义为
想要投影数据的方差最大,必须对 增加限制,这里的限制就是
为单位向量。
通过引入拉格朗日方法:
上式对求导后得到:
这表明是S的一个特征向量,如果上式左乘
得到
上式中可以看出,方差的值为特征值,当 为特征值
对应的特征向量。想要最大时,需要
最大。
PCA的应用:
1.数据压缩
2.数据预处理
3.数据可视化
1.2 高维数据的PCA:
可以先通过采样方式,计算采样矩阵的的特征值和特征向量。用采样矩阵的特征值和特征向量还原原矩阵。
1.3概率PCA(probabilistic PCA)
引入潜在变量z,对应主成分的子空间,其服从高斯分布。z的先验分布时服从标准正态分布。
同样以潜在变量z为条件,观测变量x的条件概率服从正态分布
我们可以从生成式的观点来看概率PCA模型,具体来说就是D维观测变量x 由M维潜在变量z的一个线性变换,附加一个高斯噪声来获得。即
其中 是一个D维0均值高斯分布的噪声变量,协方差为
。
1.3.1 最大似然估计参数
其中
对似然函数求导,得到
带到上式中得到:
其中S为协方差矩阵。
之后通过EM算法来求解W矩阵。
1.4 核PCA
由于PCA时线性变换,往往具有较大的局限性。在SVM中 使用核方法来替换标量积,将这种方法应用到PCA中,得到一个非线形的推广。
考虑之前的推导结果:
其中x进行0均值标准化,那么
考虑到一个M维特征空间的一个非线性变换, 将每个数据点
投影到
上,我们可以得到特征空间的协方差矩阵为:
特征向量展开为:
令
则
这样我们可以得到C的特征向量是由,...
组成的。
用核函数 来表示,带入上式,左右两端同时乘以
可以得到
用矩阵形式来表示为:
同时去掉一个K
求解下面的特征值方程:
下一步我们只要求出K即可。
经过推导可以得到
可以根据K求出特征向量.
下一节中将讲解求解PCA的另一个视角SVD。
reference:
3.https://zhuanlan.zhihu.com/p/59775730
4.http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML_2017/Lecture/PCA%20(v3).pdf
网友评论