PCA,主要用于数据降维。例如可以使用一个比原始图像少的多的数据维度来捕获图像的本质
什么是降维
降维就是将二维坐标轴上的一些数据变成一条直线上的数据点,但是不改变这些二维数据点的本质。
例如这是一些散点:
最终通过降维映射到一根直线后,再升维便于展示,得到图像:
PCA的目的就是舍去这些数据中不重要的特征,达到降维的目的。例如上图中,以这些数据点所在的直线当做新的x轴,则这些数据的y坐标值都为0,表示通过降维,不重要的特征y被舍去了。
PCA如何降维
1、首先将样本数据"中心化",保证数据的平均值为0:
X-X的平均值
2、求出样本的协方差矩阵
,代表X特征和Y特征的相关性,为了后期将Y特征或者X特征舍去使用。
3、再将协方差矩阵P
进行奇异值分解
:
奇异值分解的目的: 在线性代数中,将P
看做对一个向量的线性变换,奇异值分解就是将这种线性变换拆解成简单的、一步一步的旋转、伸缩、旋转,而这种变换的基础是在正交基上实现的,而U
中的列向量就代表旋转后的正交基(可以理解为旋转后的坐标轴),我用e1向量
和e2向量
表示。所以e1向量和e2向量就是原来坐标的x轴和y轴。
我们的目的是对二维数据降维,就是尽可能将原始数据映射到新的坐标轴e1或者e2上。对于新的坐标轴e1或者e2,新数据就变成了只有前后之分,而没有上下之分(被映射到了一根坐标轴上),达到了降维的目的。
4、将 原始数据{a,b,c,d,e} 对于e1向量
和e2向量
进行映射,
将二维数据降维成一维数据,并且保持原始数据的本质,如图所示:
这样就完成了PCA作为数据降维的作用。数据降维之后,就可以使用更少的数据特征来捕获一些原始数据的性质!