问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PCA方法去除主成分怎么保持维度不变

发布网友 发布时间:2024-03-08 21:06

我来回答

1个回答

热心网友 时间:2024-08-11 17:28

PCA: Principal Components Analysis,主成分分析。

1、引入

在对任何训练集进行分类和回归处理之前,我们首先都需要提取原始数据的特征,然后将提取出的特征数据输入到相应的模型中。但是当原始数据的维数特别高时,这时我们需要先对数据进行降维处理,然后将降维后的数据输入到模型中。

PCA算法是专门用来对高维数据进行降维而设计,通过将高维数据降维后得到的低维数能加快模型的训练速度,并且低维度的特征具有更好的可视化性质。另外,数据的降维会导致一定的信息损失,通常我们可以设置一个损失阀值来控制信息的损失。

设原始样本集为:,即样本数为m个,每个样例有n个特征维度。

2、预处理

在使用PCA降维之前,样本集需要满足两个条件:

1)特征去均值化(即均值零化)。对每个特征,使用当前特征的值减去该维特征的平均值。对第i个样例的第j个特征,计算公式为:

其中第i个特征的均值为:

当处理自然图像时,则将每个特征减去图像本身的均值,而不是减去该特征的均值。即:

为何需要去均值?这主要是去除均值对变换的影响,减去均值后数据的信息量没有变化,即数据的区分度(方差)是不变的。如果不去均值,第一主成分,可能会或多或少的与均值相关。[5]

2)归一化处理:将不同特征的数据范围归一化到同一范围中,一般将每个值除以当前维的最大值。

3、PCA算法

PCA算法的核心思想在于找出数据变化的主方向和次方向,如图3.1所示,向量u1 的方向可以认为是数据的主方向,而u2是次方向。

图3.1 数据变化的主次方向[1]

那么如何得到数据变化的主次方向?假设样本集有m个样例,每个样例有n个特征。样本集可以表示为:

第i个样例的特征向量表示为:

则样本集的协方差矩阵为:

协方差矩阵为n*n大小的方阵,具有n个特征向量。

其中协方差计算公式为:

计算协方差矩阵的特征向量及对应的特征值。

将特征向量按特征值的大小按列排放,组成矩阵u=[u1 u2 … un],对应的特征值由大到小分别为:。则特征向量u1为主特征向量(对应的特征值最大),u2为次特征向量,以此类推。

对于特征值越大的特征向量,样本集在该方向上的变化越大。对于由特征向量组成的矩阵我们称为特征矩阵,特征矩阵是一个正交矩阵,即满足uTu=uuT=I。

关于协方差矩阵的计算,以及其中的一些数学原理,可以参考文献[3,4]。

如何理解协方差矩阵的特征向量为数据变化的主次方向,以及特征值越大,其对应的特征向量方向上的数据变化越大?

答:使用协方差矩阵计算出来的特征值为其特征向量上的样本集的方差,当方差越大,说明数据集在该特征向量方向上越分散,变化越大,所以该方向就可以用来作为数据集的主方向。

另外,特征向量之间相互正交,说明各特征之间相关性最小,基本接近0.

独立==>不相关<==>协方差为零

至此,我们已经得到了数据变化的主次方向,现在我们需要计算样本在每个特征向量上的长度。对于原始样例x,其在特征向量u1方向上的长度为:

现在我们使用特征矩阵来对样本进行旋转:

旋转后的坐标变换成了:(u1, u2, …, un)。

现在若要将变换后的数据进行恢复,因为特征矩阵为正交矩阵,所以只需左乘特征矩阵的转置即可:

因为:

PCA算法过程[3]:(样本集有m个样例,每个样例n个特征)

1)将原始数据组成一个n*m大小的矩阵。

2)对矩阵的每行进行零均均值化处理,即对每个特征减去该行的均值。

3)计算协方差矩阵,这个过程叫

4)求出协方差矩阵的所有特征向量及对应的特征值。

5)根据特征值从大到小对应的特征向量,取出前k个特征向量组成一个特征矩阵u。

6)将原始数据旋转到特征矩阵u所在的空间中,,得到的数据即为降维后的结果。

4、损失误差分析

在上一步中利用协方差矩阵计算得到n个特征向量,但是我们实际上只使用了前k个特征向量,而将后面的n-k个向量直接近似为0。

直接将后面的特征近似为0会导致一定的损失。K的取值越大,损失的信息就越少,反之损失的信息就会越多。实际上,因为后面近似为0的特征向量对应的特征值是非常的小,故而将后面的特征近似为0不会导致过大的损失。

具体损失可以用前k个特征值在所有特征值中所占的比例,由于协方差矩阵的特征值为方差,因而特征值之比即为方差百分比:

其中,

在处理图像时,一般需要a>=0.99,而其他情况下一般只需a>=0.95即可。

另外,PCA算法具有缩放不变性,即所有的特征分量被放大或缩小相同的倍数,PCA输出的特征向量不会发生变化。

5、白化操作Whitening(白化算法)[2]

白化操作主要用来去除各特征之间的关联度,减少特征冗余。比如图像中相邻像素有一定的关联性,很多信息是冗余的,这时去相关可以采用白化操作。

白化操作主要完成两件事情:首先使得不同特征之间的相关性最小,接近0;其次是所有特征的方差相等。

常见的白化操作有:

1)PCA whitening。在利用PCA得到协方差矩阵的特征向量后,取前k个特征向量,各特征向量相互正交,此时相关性最小;再将新数据(旋转后的数据)的每一维除以标准差即得到每一维的方差为1。方差归一化:

pw: PCA white。

2)ZCA whitening。首先利用协方差矩阵计算出所有的特征向量后,将所有特征向量取出,再进行方差的归一化操作,最后左乘特征矩阵u(其实相当于把数据还原回去)。

它并不降低数据维度,而仅仅在PCA白化的步骤中保留所有成分,最后增加了一个旋转的步骤,这样仍然是单位方差。

6、总结

PCA算法非常巧妙地利用协方差矩阵来计算出样本集在不同方向上的分散程度,利用方差最大的方向作为样本集的主方向。其主要过程是:首先利用样本集及特征构建一个样本矩阵,然后利用样本矩阵计算得到协方差矩阵,再计算协方差矩阵的特征值和特征向量,保留特征值前k大的特征向量作为新的维度方向。再将原始样本数据转换到新的空间维度。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
孤胆枪手怎么设置局域网啊、 我家小狗刚领来,没有名字,拜托大家起个名字。 护肤品代加工 水浒Q传跨服PK是怎么回事啊 新水浒Q传什么叫PK保护状态,上号不到一分钟就被打,求解 水浒Q传 为什么要pk有什么好处? 为什么贷款每次都审核失败 有谁能说一下手机贷审核不通过的原因吗?我都审核好多次了都不能通过... 贷款审核失败是什么原因 为什么贷款未通过审核 六子是什么车 猜谜花前约相见 终究获芳心 打一网络名词 &lt;彩霞出谜&gt;错表芳心终断肠(戏剧名词) 济南至武汉多少公里 GXM19264—3有人玩过没,基于stc51单片机,程序代...1 吃猪血大便是黑色的吗 2月份交了医保几月份可以报销 有没有必要安装浴霸 威海汉庭威高广场店离海边多远 stc12c5a60s2的PWM用定时器从一般口产生和PCA... 青礁村院前社的门票一个人多少钱 医生的青春和可以说医护青春吗 污水厂进出水比值怎么算? ...顺风车、快巴出行 这三个 哪家可以有长沙到株洲的路线可以约车啊_百... 洛克王国什么宠物最好?? 大门门槛石,由于外面有防盗门,里面有防火门,把门槛石分为三条,两边低... 洛克王国连哪个宠好? 松节油燃烧现象 今天收到二审法院的短信,说已结案,能说明一审和二审的给果一样的吗? 为什么预约挂号挂不上了总显示用户名已存在? 每个月就3000块钱银行还会扣划工资是吗 ...如果你爱我,就别伤害我,难道我们的缘份散了……感谢 使用焊接型花纹钢的刀和普通锻造出来的刀在其他条件相同时哪个性能好... 黔南自驾游到西安仿古一条街怎么方便 黔东南自驾游到西安仿古一条街怎么方便 蝶链科技(深圳)有限公司怎么样 做沙发套要怎么做?测量哪些数据? “三八节快乐”用英语怎么说? 四班三倒累积的倒班假如何计算 炒芹菜怎么炒好吃怎么做炒芹菜 如何让个人财产变成夫妻共同财产? 夫妻一方的个人财产会不会变成夫妻共同财产 个人房产多久后变成共同财产 郑州豫能热电有限公司发展前景 你觉得蔬菜吃起来很苦吗?可能是基因在作怪:基因遗传导致口味变苦 南昌西站离昌北机场近还是南昌站离昌北机场近 满蜜蜜蜡多少钱一克 排名证明要开吗?多少算是比较好的? 博士申请交材料的成绩单可以不要排名吗 做手术把肉痣割掉吃什么对伤口愈合比较快