简述主成分分析法的基本步骤_主成分分析法到底怎么用的?过程模模糊糊的

本文介绍了主成分分析(PCA)的基本思想和降维过程,通过计算协方差矩阵及其特征值特征向量来寻找最大方差的方向。PCA通过保留高方差的特征,忽略低方差特征实现数据降维。文中详细阐述了基于特征值分解协方差矩阵的PCA算法步骤,并给出了一维降维的实例解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先介绍一下主成分分析(PCA)的主要思想:将n维特征映射到k维上,映射后的k维特征也即主成分。PCA降维的主要过程是:(1)从原始空间中顺序地找出一组相互正交的坐标轴。其中,第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,第三个轴是与第1,2个轴正交的平面中方差最大的。依次类推,可以得到n个这样的坐标轴。(2) 只保留前面k个含有绝大部分方差的坐标轴。事实上,在获取新的坐标轴的过程中,我们会发现:大部分方差包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。因此,PCA相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。

那么,我们如何找到这些包含最大差异性的主成分方向呢?

答案是可以通过计算数据矩阵的协方差矩阵,然后得到协方差矩阵的特征值特征向量,选择特征值最大(即方差最大)的k个特征所对应的特征向量组成的矩阵。这样就可以将数据矩阵转换到新的空间当中,实现数据特征的降维。

得到协方差矩阵的特征值和特征向量有特征值分解协方差矩阵和奇异值分解协方差矩阵这两种方法。在这里仅介绍基于特征值分解协方差矩阵实现PCA算法的过程, 并举例讲解主成分分析法的使用过程。

基于特征值分解协方差矩阵实现PCA算法的过程如下: 前提:输入数据集

equation?tex=X%3D%7Bx_1%2Cx_2%2Cx_3%2C...%2Cx_n%7D ,目标:降到k维。

(1)将数据去中心化,即每一位特征减去各自的平均值。

(2) 计算协方差矩阵

equation?tex=%5Cfrac+1+2+XX%5ET

(3)用特征值分解方法求协方差矩阵

equation?tex=%5Cfrac+1+2+XX%5ET 的特征值与特征向量。

(4) 对特征值从大到小排序,选择其中最大的k个。然后将其对应的k个特征向量分别作为行向量组成特征向量矩阵P。

(5)将数据转换到k个特征向量构建的新空间中,即Y=PX。

下面举例说明主成分分析法的使用过程。

目标:将矩阵

equation?tex=X%3D%5Cbegin%7Bpmatrix%7D+-1+%26+-1+%26+0+%26+2%26+0+%5C+-2+%26+0+%26+0+%26+1+%26+1+%5C+%5Cend%7Bpmatrix%7D 降到一行。

过程如下:

(1)因为X矩阵的每行已经是零均值,所以不需要去平均值。

(2)求协方差矩阵:

equation?tex=C%3D%5Cfrac+1+5%5Cbegin%7Bpmatrix%7D+-1+%26+-1+%26+0+%26+2%26+0+%5C+-2+%26+0+%26+0+%26+1+%26+1+%5C+%5Cend%7Bpmatrix%7D%5Cbegin%7Bpmatrix%7D+-1+%26+-2+%5C+-1+%26+0+%5C+0+%26+0+%5C+2+%26+1+%26+%5C+0+%26+1+%5Cend%7Bpmatrix%7D%3D%5Cbegin%7Bpmatrix%7D+%5Cfrac+6+5+%26+%5Cfrac+4+5+%5C+%5Cfrac+4+5+%26+%5Cfrac+6+5+%5Cend%7Bpmatrix%7D

(3)求协方差矩阵的特征值与特征向量。

求解后的特征值为:

equation?tex=%5Clambda_1%3D2%2C%5Clambda_2%3D%5Cfrac+2+5

对应的特征向量为:

equation?tex=c_1%5Cbegin%7Bpmatrix%7D+1+%5C+1%5Cend%7Bpmatrix%7D%2Cc_2%5Cbegin%7Bpmatrix%7D+-1+%5C+1%5Cend%7Bpmatrix%7D

其中对应的特征向量分别是一个通解,

equation?tex=c_1

equation?tex=c_2+ 可以取任意实数。那么标准化后的特征向量为:

equation?tex=%5Cbegin%7Bpmatrix%7D+%5Cfrac+1+%7B%5Csqrt%7B2%7D%7D+%5C+%5Cfrac+1+%7B%5Csqrt%7B2%7D%7D%5Cend%7Bpmatrix%7D%2C%5Cbegin%7Bpmatrix%7D+-%5Cfrac+1+%7B%5Csqrt%7B2%7D%7D+%5C+%5Cfrac+1+%7B%5Csqrt%7B2%7D%7D%5Cend%7Bpmatrix%7D

(4)矩阵P为:

equation?tex=P%3D%5Cbegin%7Bpmatrix%7D+%5Cfrac+1+%7B%5Csqrt%7B2%7D%7D+%26+%5Cfrac+1+%7B%5Csqrt%7B2%7D%7D+%5C+-%5Cfrac+1+%7B%5Csqrt%7B2%7D%7D+%26+%5Cfrac+1+%7B%5Csqrt%7B2%7D%7D%5Cend%7Bpmatrix%7D

(5)最后我们用P的第一行乘以数据矩阵X,就得到了降维后的表示:

equation?tex=Y%3D%5Cbegin%7Bpmatrix%7D+%5Cfrac+1+%7B%5Csqrt%7B2%7D%7D+%26+%5Cfrac+1+%7B%5Csqrt%7B2%7D%7D+%5Cend%7Bpmatrix%7D%5Cbegin%7Bpmatrix%7D+-1+%26+-1+%26+0+%26+2%26+0+%5C+-2+%26+0+%26+0+%26+1+%26+1+%5C+%5Cend%7Bpmatrix%7D%3D%5Cbegin%7Bpmatrix%7D+-%5Cfrac+3+%7B%5Csqrt%7B2%7D%7D+%26+-%5Cfrac+1+%7B%5Csqrt%7B2%7D%7D+%26+0+%26+%5Cfrac+3+%7B%5Csqrt%7B2%7D%7D+%26+-%5Cfrac+1+%7B%5Csqrt%7B2%7D%7D%5Cend%7Bpmatrix%7D

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值