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

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

简介


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


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


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


PCA算法的流程



维度灾难的几何解释


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

5a259dced0d7210fd32730e323b52e9f.png

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

ea897ecd277bd7cffe93bebeb37b925f.png

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


PCA算法具体步骤的推导


1、数据中心化的解释

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

f569af15c22747fdb610be4d47b94d8d.png

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

61214b558c10b35bace82f53b1c45c7e.png

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

e762e100d8249eb7dc3ab4c1b3e007b4.png

等式的右边的前半部分

4d12610fb513debd7067d424b88abaf4.png

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

febe68bd34b7326818d390fe10d66e3c.png

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

4756c13f791b7ae07577dcec53ac8dd4.png

其中

c4109d2ae05319ddb7ba506dde1ee4a8.png


2、最大投影方差的解释

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

1ab07ea74317a55013f3fdb26bdad8de.png

da58560e768ac1a62b36797c358b5a9f.png

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

166bbd44355c98e224795bd3d26661dc.png

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

b8b8f93ef4da5ac9e15ee1c8732b799e.png

不妨设

5bd0af418b8b9bb3cc870328833a0fa2.png

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

9701c9565739e5f71385ad38f6c16b6a.png

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

53f1f226169ba25988ba49f6e43f5051.png

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


3、最小重构距离的解释

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

45d5eb173b360aff4dcf6e1527d3d527.jpg

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

c4611ddf1c5bde3a333c8cbc95b26a73.png

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

3d06c667f73c185344fb5517e75be08c.png

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

17d4e5736a9e4d26ecc0cd4635ed7cfc.png

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


4、维度取舍问题的解释

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

相关文章
|
2月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
160 4
|
16天前
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
119 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
6天前
|
机器学习/深度学习 算法 网络安全
CCS 2024:如何严格衡量机器学习算法的隐私泄露? ETH有了新发现
在2024年CCS会议上,苏黎世联邦理工学院的研究人员提出,当前对机器学习隐私保护措施的评估可能存在严重误导。研究通过LiRA攻击评估了五种经验性隐私保护措施(HAMP、RelaxLoss、SELENA、DFKD和SSL),发现现有方法忽视最脆弱数据点、使用较弱攻击且未与实际差分隐私基线比较。结果表明这些措施在更强攻击下表现不佳,而强大的差分隐私基线则提供了更好的隐私-效用权衡。
39 14
|
1月前
|
机器学习/深度学习 人工智能 算法
深入解析图神经网络:Graph Transformer的算法基础与工程实践
Graph Transformer是一种结合了Transformer自注意力机制与图神经网络(GNNs)特点的神经网络模型,专为处理图结构数据而设计。它通过改进的数据表示方法、自注意力机制、拉普拉斯位置编码、消息传递与聚合机制等核心技术,实现了对图中节点间关系信息的高效处理及长程依赖关系的捕捉,显著提升了图相关任务的性能。本文详细解析了Graph Transformer的技术原理、实现细节及应用场景,并通过图书推荐系统的实例,展示了其在实际问题解决中的强大能力。
219 30
|
1月前
|
算法
PAI下面的gbdt、xgboost、ps-smart 算法如何优化?
设置gbdt 、xgboost等算法的样本和特征的采样率
57 2
|
1月前
|
存储 算法
深入解析PID控制算法:从理论到实践的完整指南
前言 大家好,今天我们介绍一下经典控制理论中的PID控制算法,并着重讲解该算法的编码实现,为实现后续的倒立摆样例内容做准备。 众所周知,掌握了 PID ,就相当于进入了控制工程的大门,也能为更高阶的控制理论学习打下基础。 在很多的自动化控制领域。都会遇到PID控制算法,这种算法具有很好的控制模式,可以让系统具有很好的鲁棒性。 基本介绍 PID 深入理解 (1)闭环控制系统:讲解 PID 之前,我们先解释什么是闭环控制系统。简单说就是一个有输入有输出的系统,输入能影响输出。一般情况下,人们也称输出为反馈,因此也叫闭环反馈控制系统。比如恒温水池,输入就是加热功率,输出就是水温度;比如冷库,
386 15
|
2月前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
61 1
|
8月前
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
265 14
|
8月前
|
机器学习/深度学习 算法 数据可视化
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
154 1
|
8月前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)