1. PCA是什么?
PCA,全称Principal Component Analysis(主成分分析)。主成分分析法本身是一个非监督的机器学习算法,主要用于数据的降维。降维可以发现更便于人们理解的特征。主成分分析法也有其他应用:如可视化;去噪。
举例:
如图所示有二维平面,横轴和纵轴分别代表不同特征,座标上有如下样本。
要将此二维特征进行降维,则考虑以下两种方式:
(1)若抛弃特征2,保留特征1进行降维:
(2)若抛弃特征1,保留特征2进行降维:
(3)比较
比较两个降维方案,我们认为右边是较好的降维方案。因为右图中点与点距离较大,即点与点之间有较高的可区分度,保持了原来的点之间距离。而左侧与原先点之间分布差异更大。而右边是最好的方案吗?
若给出一条直线如图。
将所有点映射到此直线上,如图所示。
这样点与点之间距离更大,区分度更高,同时使得降维后的点的位置更接近与原先点位置。
问题:如何找到这个让样本间间距最大的轴?
如何定义样本间间距?
使用方差(Variance):。
问题转化为:找到一个轴,使得样本空间的所有点映射到这个轴后,方差最大。
2. 方法
第一步:将样例的均值归为0(demean)
即所有样本都减去样本的均值。
即从图:
变为:
使得每一个样本在每个维度均值都为0。此时 ,则方差化简为: 。式子中 为所有样本点映射在新的座标轴上对应的新的样本,二维中可表示为w = (w1, w2)。
我们想求一个轴的方向w = (w1, w2),使得所有样本映射到w后,有: (映射后的方差值)最大。由于X是包含两个维度的向量,故可写成: 求解最大值。
最大,由于进行了demean处理,故 = 0,所以求解如下式子最大值。
假设红线w = (w1, w2)为我们要寻找的方向, 为样本点对应的向量,现X映射到w则做一垂线,交点 如下图。则我们要求的 的平方对应的是下图蓝色线长度的平方。
(夹角为两红线之间夹角)
由于||w|| = 1,故可化为:
即求: 最大值。(可以不用||符号,因为两个向量点乘结果是一个数)。
也可以表示为:
到此为止,主成分分析法就化成了一个目标函数的最优化问题,我们可以使用梯度上升法解决。