【机器学习算法】4、降维算法之PCA(深入理解与实践)

技术

简介

一般情况下,向量的各个分量之间可能存在一定的相关性。直接将向量送入机器学习算法中处理效率会很低,也会影响算法的精度。为了可视化显示数据,人们需要把向量变换到低维空间后再送入算法中进行处理。








目前大部分降维算法处理向量表达的数据,也有一些降维算法处理高阶张量表达的数据,之所以使用降维后的数据表示是因为在原始的高维数据空间中,包含冗余信息以及噪声信息,在实际应用例如图像识别中的误差,降低了精度;而通过降维处理,可以减少冗余信息造成的误差,提高模型的精度。又或者希望通过降维算法来寻找数据内部的本质结构特征。








在很多算法中,降维算法只是数据预处理的一部分,接下来讨论的主要是对于PCA降维算法的理论分析。

PCA算法的流程

picture.image

维度灾难的几何解释

如图所示的超几何图像,数据处于D维空间中,r=1

picture.image

picture.image

通过上式可以看出,当空间维度D趋近于无穷大时,空间内的超球体的体积趋近于0,也就是说样本基本上都落于绿色的区域内,同理看右侧图:

picture.image

同样可以看出,当数据维度D趋近于无穷大的时候,数据也落在绿色的区域内,也就是说深蓝色区域中基本上是空的,也就是说,当数据维度为很高的D维是,中间很多一部分是空的,导致数据维度很高,但是数据是稀疏的,也就造成了维度灾难。

PCA算法具体步骤的推导

1、数据中心化的解释

picture.image

假设数据为如下定义的形式:

picture.image

样本均值(Sample Mean)和样本方差(Sample Co-variance):

picture.image

对于样本方差,继续进行推导可以得到:

picture.image

等式的右边的前半部分

picture.image

同理,等式右边的后半部分

picture.image

于是可以的到样本协方差为:

picture.image

其中

picture.image

2、最大投影方差的解释

picture.image

已知Sample Mean和Sample Co-variance分别为:

picture.image

picture.image

所谓的投影方差最大化,意思就是样本在低维空间尽可能地分离,从图2可以看出来,样本在基向量u1上投影得到的结果对于分类而言更容易分出结果,而在u2上的话很容易造成数据在低维空间的重合而形成本来没有的线性关系,造成有用的信息被清除,进而影响结果。

picture.image

通过图3可以得到单个样本投影的方差为:

picture.image

不妨设

picture.image

可以看出投影方差最大化其实就是一个带约束的最优化问题,假设拉格朗日函数为:

picture.image

对拉格朗日函数关于u1求导可以得到如下的等式:

picture.image

于是便找到了最大投影向量和特征值的对应关系,至此推导完毕。

3、最小重构距离的解释

picture.image

所谓的重构距离就是降维后的数据重新映射到原来的维度后与原始的数据点尽可能地接近,让损失地信息尽可能小。

picture.image

已知基向量u和中心化后地数据,于是重构向量可以得到;

picture.image

所以可以得到重构距离为:

picture.image

可以看出和最大投影方差一样依然是一个带约束的优化问题,通过构造拉格朗日函数和求得可以得到:

picture.image

于是找到对重构距离影响最小的(P-q)个维度。得证。

4、维度取舍问题的解释

picture.image

依据就是方差,方差越大的特征,特征中的数据分布的离散程度就越大,特征所包含的信息量也就越大;反之,如果特征中的数据方差比较小,数据特征中包含的数据信息了也比较小;而我们设计模型时就是要求在数据维度一定的同时特征中包含的信息越多越好,而特征值越大所包含的数据分布信息越多,所以保留特征值大的队列。

PCA算法的优缺点

优点 :降低数据的复杂度,识别最重要的多个特征;

缺点 :不一定需要,且可能损失有用的信息。

PCA算法的改进和优化

1、KPCA算法

picture.image

KPCA是一种改进的PCA非线性降维算法,它利用核函数的思想,把样本数据进行非线性变换,然后在变换空间进行PCA,这样即实现了非线性PCA;

2、局部PCA算法

picture.image

局部PCA是一种改进的PCA局部降维算法,它在寻找主成分时加入一项具有局部光滑性的正则项,从而使主成分保留更多的局部性信息。

SKlearn算法的实践

1、PCA算法实践

picture.image

picture.image

picture.image

执行结果为:

picture.image

2、KPCA算法实践

picture.image

picture.image

picture.image

picture.image

picture.image

picture.image

picture.image

执行结果:

picture.image

picture.image

picture.image

picture.image

公众号回复【PCA】即可获取该文章的PDF文件和代码

参考:

《Python大战机器学习》——数据科学家的第一个小目标

《机器学习实战》

《模式识别与机器学习》

声明:转载请说明出处

下方为小生公众号,还望包容接纳和关注,非常期待与您的美好相遇,让我们以梦为马,砥砺前行。

长按识别二维码关注一下

更多精彩内容可回复关键词

每篇文章的主题即可

picture.image

picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
火山引擎HTTPDNS边缘云原生技术实践
《火山引擎HTTPDNS边缘云原生技术实践》 赵彦奇 | 火山引擎边缘云网络研发工程师
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论