笔记(总结)-PCA(主成分分析)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

主成分分析是一种特征抽取手段,通过将样本从原始空间映射到低维空间实现特征数量的减少,而低维空间中某一维度实际上是原始空间的一种“杂糅”表示。在之前的博客中提到过参考链接,由于PCA涉及的数学手段包括矩阵、特征值和特征向量,参考笔记-矩阵与特征值这一篇,对其有一定理解后再来看PCA算法就比较清晰了。


首先给出PCA算法:

  1. 对所有样本进行中心化: xixi1mmi=1xi x i ← x i − 1 m ∑ i = 1 m x i
  2. 计算样本的协方差矩阵 XXT X X T
  3. 对协方差矩阵 XXT X X T 做特征值分解
  4. 取最大的k个特征值所对应的特征向量 w1,w2,...,wk w 1 , w 2 , . . . , w k

得到投影矩阵 w=(w1,w2,...,wk) w = ( w 1 , w 2 , . . . , w k )


首先跳过step1先看step2,看看为什么需要计算样本的协方差矩阵。给出协方差(covariance)定义如下:

cov(X,Y)=E[(XE(X))(YE(Y))] c o v ( X , Y ) = E [ ( X − E ( X ) ) ( Y − E ( Y ) ) ]

是两个变量偏离各自均值的乘积的期望。当两个变量变化趋势相同时,即当 X X 大(小)于E(X)时, Y Y 也大(小)于E(Y),协方差取较大正值;若两个变量变化趋势相异甚至相反时,协方差取较大负值。因此协方差可以衡量两个变量变化趋势的相似性,即变量相关性。

对于 n n 维随机变量x=(x1,x2,...,xn)T,称矩阵:

C=(cij)n×n=c11c21cn1c12c22cn2c1nc2ncnn C = ( c i j ) n × n = [ c 11 c 12 ⋯ c 1 n c 21 c 22 ⋯ c 2 n ⋮ ⋮ ⋱ ⋮ c n 1 c n 2 ⋯ c n n ]

n n 维变量x的协方差矩阵,其中:

cij=cov(xi,xj) c i j = c o v ( x i , x j )

对于给定的样本矩阵 X=(xij)n×m(m X = ( x i j ) n × m ( m n n 维变量),参考关于协方差矩阵的理解最终得到协方差矩阵为:

C=1mXXT

此时回到step1,可以看到只是少了 1m 1 m ,而这只是一个尺度伸缩,对PCA算法并无影响。因此在算法最初对样本进行均值化,是为了让算法后面的计算有意义,而不是某种预处理,实是属于算法的一部分。

那为什么需要用协方差矩阵呢?这就涉及到PCA算法的目的:将样本从原始空间映射到低维空间实现特征数量的减少。这种映射可以用下图形象表达:
这里写图片描述
绿色的轴对应了某种投影(即映射)方向,显然在direction 1 方向上样本方差是很大的,比较容易能将其区分开来。我们希望投影后能最大程度地区分样本,这可以等价为“最大化投影后的方差”,此时有:
这里写图片描述
可以看到当我们在单位正交基的限制条件下 ||w||=1 | | w | | = 1 ,最大投影后的方差,用拉格朗日乘数法求解,得到等价的最大化目标为 maxwTTSw=wTλw=λ max w T T S w = w T λ w = λ ,即最大化矩阵 S S (即上文中的样本矩阵X)的特征值,投影向量即为特征值对应的特征向量。

再换一个角度思考,将样本投影之后,我们希望减少某些维度,从而获取对样本的“更简洁”的表示。而减少维度的准则是:在减小维度之后,能最大程度地还原回到减小之前。好比我们找到了一个新的视角来看这个问题,但是在新视角上我们希望看问题看得更简单,因为这种“简单”我们可能会忽略一些东西,而被忽略的东西对解决问题并不重要。这样即得到了“最小化重建后的误差”。此时有:
这里写图片描述

假如样本原始空间和投影空间的维数为 D D ,我们要在投影之后减少1个维度,计算重建误差如下:
这里写图片描述
最终误差等于即为uDTSuD(被去除的是第D个维度),而由上最大化方差的推导结果,这恰好等于特征值 λD λ D 。也就是说,最小化重建误差等价于最小化被去除维度对应的特征值,这和最大化投影方差的结果是等价的。

此时可以解释PCA算法的step3、step4。对协方差矩阵做特征分解,得到与原始空间维度相同的投影空间,每个特征值 λ λ 对应的特征向量为某个投影方向。我们保留较大的 λ λ 对应的特征向量,使得投影后方差大,样本更能区分开;去除较小的 λ λ 对应的特征向量,使得投影后重建误差小。 λ λ 对应的特征向量即为投影向量。

回到所举示例进行说明:
这里写图片描述
原始空间和投影空间都为2维,显然direction 1上样本方差更大,而direction 2上样本方差很小,不易区分。去除direction 2对应的维度,投影空间变为1维,样本将落于direction 1对应的直线上。


PCA算法解释完毕。我们首先跳过step1来分析step2,解释了协方差和协方差矩阵,协方差矩阵的推导自然就解释了step1。而后从“最大化投影方差”和“最小化重建误差”,解释了为什么需要对协方差矩阵进行矩阵分解,并选取较大特征值对应的特征向量作为投影向量。以上主要是公式推导,如果参阅了本文最开始提供链接中关于矩阵概念的分析,对PCA的算法原理会理解得更加透彻。简要描述我从该链接中总结的东西:

  • 矩阵是一种变换(对原始空间旋转和缩放的融合)
  • 矩阵的特征向量对应的是该变换的缩放方向(可理解为旋转过后的坐标轴方向)
  • 矩阵的特征值对应的是不同缩放方向的缩放程度

若将原空间中样本比作某物体运动下轨迹图,则PCA相当于找到了物体运动最剧烈的方向。由于协方差矩阵中的元素是各个维度随机变量的协方差(即样本空间中各样本特征之间的相关性),我们做的实际上是找出了缩放程度最大、最能描述样本特征相关性的若干个方向。


虽然PCA算法使用场景有限,但是其背后的思想内涵是很丰富的。十分值得学习理解。

参考链接如下:
如何理解矩阵特征值? - 知乎
主成分分析PCA算法:为什么去均值以后的高维矩阵乘以其协方差矩阵的特征向量矩阵就是“投影”? - 知乎
关于协方差矩阵的理解 - CSDN博客
周志华西瓜书

DS&ML_算法笔记主成分分析PCA模型 对于主成分分析的相关知识点的总结与整理 简单描述一下PCA的思想,PCA是什么? PCA是利用的思想,在损失较少信息的前提下,用几个综合指标来代替之前多个指标的一种多元统计方法,把这些综合指标称为主成分。核心就是把协方差矩阵特征值从大到小排列选出最大的K个组成特征向量矩阵。 阅读详情

相关推荐

PCA主成分分析可视化-小白自学笔记

PCA算法介绍 主成分分析(PCA) 一种无监督的确定性算法,用于特征提取和可视化。 它的主要功能就是:对于多度的数据而言,它把相关性高的度,整合到一起,留下不相关的度数据,尽可能使数据的空间保持原有的状态。目前来讲python的sklearn库中已经集成了PCA算法,只需要调用就可以使用了。具有的算法详情,自己可以看李沐老师写的《动手学机器学习》 数据集 这里用minist手写数据集,文件格式是mnist.npz。minist手写体数据集 0-9的数字灰度图片 训练集样本数60000个 .

rryy12336的博客 1201

主成分分析样本数必须大于变量数吗?

主成分分析的样本数通常要大于变量数。这样才能得到有用的结果。但是,在某些情况下,可以通过使用矩阵分解等技巧来实现样本数小于变量数的主成分分析。 ...

weixin_42576804的博客 1243

PCA(主成分分析-principal components analysis)学习笔记以及源代码实战讲解

在看完吴恩达讲解的PCA(主成分分析)方法后,想着能够用代码的方式实践一下。紧接着就借阅了一下《机器学习实战》里面对PCA的流程的讲解和代码。现在对PCA的运算过程还是比较明白的,也希望这份学习笔记能够帮助刚开始学习PCA的同学们。

梁先森的博客 2030

python主成分分析_Python机器学习笔记主成分分析PCA)算法

一:引入问题首先看一个表格,下表是某些学生的语文,数学,物理,化学成绩统计:首先,假设这些科目成绩不相关,也就是说某一科目考多少分与其他科目没有关系,那么如何判断三个学生的优秀程度呢?首先我们一眼就能看出来,数学,物理,化学这三门课的成绩构成了这组数据的主成分(很显然,数学作为第一主成分,因为数据成绩拉的最开)。那么为什么我们能一眼看出来呢?当然是我们的坐标轴选对了!!下面,我们继续看一个表格,下...

weixin_39570530的博客 2250

PCA实例

 下面举一个简单的例子,说明PCA的过程。    假设我们的数据集有10个二数据(2.5,2.4), (0.5,0.7), (2.2,2.9), (1.9,2.2), (3.1,3.0), (2.3, 2.7), (2, 1.6), (1, 1.1), (1.5, 1.6), (1.1, 0.9),需要用PCA到1特征。    首先我们对样本中心化,这里样本的均值为(1.81, 1.91),...

阳光zfc 1316

PCA介绍以及简单实例

111

mym_74的博客 1739

PCA算法(内含PCA可视化迷你案例+PCA人脸识别案例+PCA逆转噪案例)

文章目录1、sklearn中的算法(1)PCA(2)SVD(3)思考2、重要参数n_components3、PCA中的SVD4、重要接口inverse_transform5、重要接口,参数和属性总结6、案例:PCA对手写数字数据集的 1、sklearn中的算法 PCA使用的信息量衡量指标,就是样本方差,又称可解释性方 差,方差越大,特征所带的信息量越多。 (1)PCA 我们希望能够找出一种办法来帮助我们衡量特征上所带的信息量,让我们在的过程中,能够即减少特征的数量,又保留大部分有效信息——

weixin_51589123的博客 4839

主成分分析碎石图_ISLR读书笔记十九:主成分分析PCA

本文使用 Zhihu On VSCode 创作并发布前面写的一些统计学习方法都是属于监督学习(supervised learning),这篇主成分分析(principal components analysis,简称 PCA )和下一篇聚类分析(clustering)都是属于非监督学习(unsupervised learning)。之前 ISLR读书笔记十二 中已经提到过主成分这一概念。其主要目的...

weixin_39610422的博客 1761

PCA主成分分析以及Python实现(阅读笔记

简述 PCA日常使用,但还没有研究过其理论,这让我很好奇。 理论部分 《机器学习》中是这样开始的: 对于正交属性空间的样本点,如何用一个超平面来对所有的样本点进行表达。 超平面和半空间是优化领域的两个重要概念 简单来说,矩阵方程W∗X+b=0W*X+b = 0W∗X+b=0表示的是超平面,W∗X+b≥0W*X+b \geq 0W∗X+b≥0表示的就是半空间。 显然超平面是直线在高空间的扩展。(...

gc.collect() 1万+

《Matlab教学建模方法与实践(第三章)》学习笔记——主成分分析(PCA)

主成分分析是采用一种数学的方法,其所做的就是设法将原来众多具有一定相关性的变量,重新组合为一组新的综合变量来代替原来的变量。主成分个数k的选取,主要根据主成分的累计贡献率来决定,即一般要求累计贡献率达到85%以上,这样才能保证综合变量能包含原始变量的绝大多数信息。当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时矩阵的行数,第二个元素是矩阵的列数。当有两个输出参数时,将矩阵的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c。B返回排序后的矩阵,index返回排序后的行索引。

2402_87464543的博客 1002

PCA主成分分析笔记

PCA主成分分析 主成分分析,是

jayandchuxu的专栏 372

matlab建模笔记——主成分分析PCA

主成分分析(Principal Component Analysis,PCA),是一种统计方法。在处理实际问题中,多个变量之间可能存在一定的相关性,当变量的个数较多且变量之间存在复杂的关系时,增加了问题分析的难度。主成分分析是一种数学的方法,该方法主要将原来众多具有一定相关性的变量,重新组合成为一种新的相互无关的综合变量。例如,当选择第一个线性组合即第一个综合变量为F1,希望F1能够反映更多的信息,因此F1在所有线性组合中的方差是最大的,此时F1为第一主成分。如果F1作为第一主成分,不足以代表原来P个变

Wall_e_47的博客 8102

数学建模笔记—— 主成分分析PCA)

主成分分析是对于原先提出的所有变量,将重复的变量(关系紧密的变量)删去多余,建立尽可能少的新变量,使得这些新变量是两两不相关的,且这些新变量在反映课题的信息方面尽可能保持原有的信息。因此,人们会很自然地想到,能否在相关分析的基础上,用较少的新变量代替原来较多的旧变量,而且使这些较少的新变量尽可能多地保留原来变量所反映的信息?我们可以把多种指标中综合成几个少数的综合指标,做为分类的型号,将十几项指标综合成3项指标,一项是反映长度的指标,一项是反映胖瘦的指标,一项是反映特殊体型的指标。怎么找到新的度呢?

lbm666666的博客 5983

主成分分析PCA)学习笔记

PCA,一看就懂!

梦想终会实现 879

pca主成分分析_主成分分析PCA)机器学习笔记

Principal Component Analysis (PCA )被归类为机器学习十大算法之一。用于从一组较大的数据中识别少数的具有代表性的特征,即主成分。主成分分析是由卡尔·皮尔森(Karl Pearson)于1901年发明的一种用于预测模型和探索性数据分析的工具。主成分分析是一种有用的统计方法,现在广泛应用于图像压缩、人脸识别、神经科学和计算机图形学等领域。是不是没想到119年前...

weixin_39766910的博客 2174

pca主成分分析理解笔记

一.PCA的目的(目标) 就是为了在尽量保证“信息量不丢失”的情况下,对原始特征进行 ,也就是尽可能将原始特征往具有最大投影信息量的度上进行投影。将原特征投影到这些度上,使后信息量损失最小。将原有的M数据集,转换成N的数据(N<M)。新生成的k数据尽可能的包含原来d数据的信息。 目标(1).找到变异最大的新度,以最大程度地区分不同数据点。(2).这一新度应该可以让我们预测和重建原始度,重建或投影误差(reconstruction/projection error)应该

qq_20073741的博客 495

PCA-主成分分析笔记

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

mabufa07的博客 698

PCA主成分分析学习笔记

PCA主成分分析概念、原理、实现描述

qq_20184333的博客 402
上一篇: 笔记(总结)-SVM(支持向量机)的理解-4
下一篇: kaggle-Corporación Favorita Grocery Sales Forecasting
ZSYGOOOD
博客等级 码龄12年 113粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值