1. 什么是PCA
PCA(principal component analysis) ,主成份分析,顾名思义,分析数据主要成份。它是通过用其它维度的来表示数据,这些维度有一个特点,就是每个维度捕捉到原始数据的信息是逐步降低的,同时这些维度相互独立。可作为是一种降维技巧,在尽可能地保留数据信息的情况,降低数据维度,同时让各维度之间不相关。降低维度好处很多,比如在算法计算中,可减少计算量,提高模型运算速度。不相关可减少分析难度
2.PCA的公式推导
在PCA定义中,我们提到一个很关键的字,信息,同时要求尽可能多地包含原数据的信息,因此我们需要找一种方式把数据信息量化。量化方式很多,比如方差,协方差,信息熵,gini系数等。但是他们不同的性质导致适用场景也不同,比如熵的公式为 ,P为概率。可理解为求log(p)的负平均值,它关注是个体,因此它更加适用于去衡量每个值被选中概率情况,同时也可以用来衡量一个事件发生概率所能提高信息。方差更多关注是整体的分布情况,协方差关注是个体与个体之间关系。因此在PCA公式设计使用了方差和协方差。
一.主成份分析法直观理解
我们知道数据可以放在多维坐标轴空间中,列如
x1 | x2 |
-3 | 4 |
5 | 5 |
6 | 2 |
表格数据放在坐标轴如下
因此主成份分析法另外一种理解是:对数据进行正交变换,具体操作就是对原坐标轴进行旋转变换,并用变换得到的新坐标轴表示原数据。这些新坐标轴就是主成份。如下:很明显主要是沿着y1着分布的,y1轴代替x1,作为新的特征。
那y1 和 y2该如何旋转呢?或者如何求解呢?
根据‘尽可能多地包含原始数据信息’的条件,和用方差量化信息。我们可把Y求解条件转化为找到Y1轴,数据在该轴上的映射分布的方差最大。如下图,A1,B1,C1分别A,B,C在Y1轴上映射。标准化(方差1,均值为0)后的原始数据的方差表达为,映射到Y1轴后方差为,要想使更大,则更小(三角关系)。等价地,主成分分析在旋转变换中选取离样本点的距离平方和最小的轴,作为第一主成分。
注意这是使用的是标准化,不是归一化,归一化的均值不一定为零,导致方差不能通过计算。
二.转换为数学语言
Y写成X函数
(1). 因为标准化,所以
所以系数向量是单位向量,即,根据单位向量的定义
(2) 因为要求新的主成份之间线性不相关,所以
是协方差
(3) 方差最大化
看到上面约束条件,想求解, 我们首先想到应该是拉格朗日乘子法
三.拉格朗日乘子法求出主成份
拉格朗日乘数法直观理解
求解的最大值, 约束条件为
图中虚线部分是等高线,该等高线与高中地理中等高线含义是相同的,在等高线上各点的函数值相等。该题求解,我们可以想象一下。一条绳,一个山坡。找到点,这些点在绳上,也在坡上,同时是能达到的坡最高。这样点有且只有一个,绳与坡相切点。
与相切,则在切点处的梯度方向共线,即 所以
可变形为
所以
了解拉格朗日乘子法后,PCA推导就相当容易多了,直接套公式。
约束条件
定义拉格朗日函数:
求导,并令其等于求得
所以
看着是不是很像函数特征值和特征向量求解函数,是的,没看错,参考公式如下
所以主成份是协方差 的特征向量。