原文: https://zhuanlan.zhihu.com/p/26951643
在多元统计分析中,主成分分析(Principal components analysis,PCA)是一种分析、简化数据集的技术。主成分分析常常用于减小数据集的维数,同时保持数据集中的对方差贡献最大的特征。这是经过保留低阶主成分,忽略高阶主成分作到的。这样低阶成分每每可以保留住数据的最重要方面。
PCA在机器学习中常常被用到,是数据预处理的重要步骤。它主要基于如下考虑:html
以下图,平面上有不少二维空间的特征点,若是想对这些特征点作特征降维(变为一维),应该怎么作呢?你们应该都知道须要进行投影,但还要考虑在哪一个方向上进行投影,例如图中须要投影到长箭头方向便可,但考虑为何不在短箭头上投影?算法
PCA本质上是一个有损的特征压缩过程,可是咱们指望损失的精度尽量地少,也就是但愿压缩的过程当中保留最多的原始信息。要达到这种目的,咱们但愿降维(投影)后的数据点尽量地分散。如图,相比于长箭头,若是在短箭头上进行投影,那么重叠的点会更多,也就意味着信息丢失的更多,于是选择长箭头方向。机器学习
基于这种思想,咱们但愿投影后的数据点尽量地分散。而这种分散程度在数学上能够利用方差来表示。设降维后的特征为,也就是但愿
尽量地大(
为特征
中的值,
为均值),而因为在PCA降维前,通常已经作了特征零均值化处理,为了方便,记
。函数
一样,为了减小特征的冗余信息,咱们但愿降维后的各特征之间互不相关。而不相关性能够用协方差来衡量。设降维后的两个特征为、
,则但愿
为0。学习
现假设咱们的数据为优化
构造出协方差矩阵,并乘以系数,则编码
能够看出的对角线元素就是各特征的方差,其余各位置的元素就是各特征之间的协方差。于是只须要降维后的数据协方差矩阵知足对角矩阵的条件便可。component
设为原始数据
作完PCA降维后的数据,知足
(矩阵乘法至关于映射,若
为的列向量为基向量,那么就至关于映射到新的坐标系),
,
分别为对应的协方差矩阵,那么orm
于是,咱们只须要计算出,使
知足对角矩阵的条件便可。而
为实对称矩阵,咱们只须要对它作矩阵对角化便可。htm
PCA的原理基本就是这样,仍是挺简单的。
PCA的构建:PCA须要构建一个编码器,由输入
获得一个最优编码
(若
,则作了降维编码);同时有一个解码器
,解码后的输出
尽量地与
相近。
PCA由咱们所选择的解码器决定,在数学上,咱们使用矩阵将映射回
,即
,其中
定义解码的矩阵。
为了限制PCA的惟一性,咱们限制中全部列向量彼此正交且均有单位范数(不然
、
同比例增长、减小会产生无数个解)。
在数学上,为了知足PCA构建中的条件,咱们利用范数来衡量
与
的相近程度。即
,也就是
该最小化函数能够简化为
于是,优化目标变为,再带入
,
再求偏导
因而咱们能够获得编码函数,PCA的重构操做也就能够定义为
。问题接着就转化成如何求编码矩阵
。因为PCA算法是在整个数据矩阵上进行编码,于是也要用
对全部数据进行解码,因此须要最小化全部维上的偏差矩阵的Frobenius范数:
咱们考虑的状况,则
是一个单一贯量
,则上式能够转化为
而为标量,转置与自身相等,上式一般写做
再将每个输入点叠加起来,咱们获得
Frobenius范数简化成(考虑约束条件)
最后的优化目标能够利用以及拉格朗日乘数法来求解,可得最优的
是
的最大特征值对应的特征向量。
上面的推导特定于的状况,仅有一个主成分。通常来讲,矩阵
由
的前
个最大的特征值对应的特征向量组成(利用概括法,将
表示为
的函数便可,须要两个辅助矩阵:单位对角矩阵
以及
,省去证实过程)。