PCA(Principal component analysis)是一种多元统计方法。最近在研究PCA在故障检测上的运用。在这里说说我对PCA的认识。
首先,我们需要有一组数据X,X是n行m列的数据,为了方便,我们认为数据是均值为0,方差为1的数据。其中n为样本数,m为变量。我们可以找到一个线性组合T=XP,其中T=(t1,t2,...,tm)(T为得分矩阵,Rn*m),P=(p1,p2,...,pm)(p为负载矩阵,Rm*m)。
其中使得 (1)ti和tj线性无关。
(2)t1是使X一切线性组合中方差最大的,t2是使满足(1)后X一切线性组合中方差最大的。。。
(3)ti=Xpi的系数满足piTpi=1.
其实,以上三个要求就是将原数据进行平移旋转,但是也不能随意的旋转,我们需要找个一组坐标系,使得我们的数据在这个新的坐标系上能有最清晰的反应。这个指标就是方差,我们需要找到一组使这组数据方差最大的一个坐标系,然后找到这个坐标系之后,我们选取其方向的单位向量来表示这个坐标系。
这个新的坐标系的具体求解方法如下:
(1)将数据X中心化((x-u)/std(x)),得到新的数据仍然用X表示。
(2)计算X的协方差矩阵∑=XT*X。并对其进行特征值分解,得到特征值Λ',和对应的特征向量矩阵P'。然后我们对特征值按其大小按从大到小排序,对应的特征向量也进行排序得到Λ和P,就找到满足条件的坐标系。
以上是坐标系的变换,但PCA不仅仅如此。PCA可以在一定置信度下,将高维数据用较少维数的数据表示,也就是降维的功能。下面来解释。
首先,我们对一个100*3的数据进行PCA处理,得出负载矩阵P。我们选取负载矩阵中前两个向量作为主元空间,将其画出来的话是这个样子的:
蓝色的点为原数据点,红色向量为第一主轴,黑色向量为第二主轴,绿色向量对应残差方向(它对应的方差太小,可以被忽略)。平面为第一、第二主轴构成的平面。
可以明显的看到,原数据与主元空间(就是平面)的关系,原数据并不全在主元空间内,但是残差方向的方差是最小的。
我们先是通过旋转获得可以使数据方差最大主轴,然后我们进行降维。降维后的数据如下图:
两张图都是降维后的图形,旋转下能看得更清楚,降维后的数据都在主元空间内了。由于残差方向的信息比较小,PCA忽略了这一部分信息,用降维后的数据来表示原数据。个人觉得PCA降维就是把原数据压扁在主元空间里面,残差方向都变为0了(个人觉得这样最形象了,请自行补脑。。)。PCA的降维其实去掉了一部分噪声,使多维数据更加精简。
以上内容是个人对PCA的理解,如有不足,望指正。