一文了解PCA的原理和细节

机器学习与数据挖掘
机器学习与数据挖掘
2018年10月17日科技公司算法工程师

昨天有朋友问PCA算法的一些细节问题,今天就写一篇PCA的文章,主要讲述PCA的整个过程以及其中的一些细节问题。

一、PCA过程

1、计算每一个维度的平均值,然后对每一个样本取值减去其对应维度的平均值,一般情况下还应该进行归一化。如下图:

一文了解PCA的原理和细节

原始数据

一文了解PCA的原理和细节

减去均值后的数据

2、求特征协方差矩阵

一文了解PCA的原理和细节

对于一个3维数据对应的协方差矩阵

3、协方差的特征值和特征向量

4、将特征值按照从大到小的顺序排序,选择其中最大的k个(降维到K维),然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵。

5、将原始样本数据投影到选取的特征向量上。

比如:假设样本数为m,特征数为n,减去均值后的样本矩阵为DataAdjust(m*n),协方差矩阵是n*n,选取的k个特征向量组成的矩阵为EigenVectors(n*k)。那么投影后的数据FinalData为

一文了解PCA的原理和细节

那么,问题就来了,为什么协方差矩阵前K个特征值对应的方差就是最大的呢?,这就是方差最大理论了。

二、PCA理论基础

在信号处理中认为信号具有较大的方差,噪声有较小的方差,信噪比就是信号与噪声的方差比,越大越好。赝本在那个维度的的投影方差较小,那么认为那个维度的投影是由噪声引起的。因此我们认为,最好的k维特征是将n维样本点转换为k维后,每一维上的样本方差都很大。

比如下图有5个样本点:(已经做过预处理,均值为0,特征方差归一)

一文了解PCA的原理和细节

下面将样本投影到某一维上,这里用一条过原点的直线表示(前处理的过程实质是将原点移到样本点的中心点)。

一文了解PCA的原理和细节

假设我们选择两条不同的直线做投影,那么左右两条中哪个好呢?根据我们之前的方差最大化理论,左边的好,因为投影后的样本点之间方差大一些。

关于样本点投影的概念,通过下图可以明白。

一文了解PCA的原理和细节

u是一个单位向量,也就是说u向量决定我的样本按照哪个方向映射,这时候方差才大。

由于原始数据已经是0均值的了,因此经过映射之后也是0均值的

我们只需要对协方差矩阵进行特征值分解,得到的前k大特征值对应的特征向量就是最佳的k维新特征,而且这k维新特征是正交的。得到前k个u以后,样例xi通过以下变换可以得到新的样本。

一文了解PCA的原理和细节

中间那部分很熟悉啊,不就是样本特征的协方差矩阵么xi的均值为0,上式可以改写为

一文了解PCA的原理和细节

由于u是单位向量,即

一文了解PCA的原理和细节

上式两边都左乘u得,

一文了解PCA的原理和细节

一文了解PCA的原理和细节

这不就是说明方差最大的方向就是按前K个特征值对应的特征向量映射的方向吗。

内容来自今日头条。若本内容侵犯了您的合法权益,请您与此邮箱联系:feedcoopjubao@toutiao.com。

热门评论
上拉加载更多