k重特征值必有k个线性无关的_PCA--特征值分解方法

PCA(主成分分析)通过特征值分解寻找数据的最佳低维表示,最大化方差并最小化变量间的协方差。通过将数据转换到特征向量基上,实现数据的降维,其中特征向量对应协方差矩阵的特征向量。优化目标是找到让原始协方差矩阵对角化的矩阵,确保线性无关的特征向量,从而保留最多的信息。
摘要由CSDN通过智能技术生成

数据选择是指有M个属性,从中选中N个属性。特征提取(data extraction)则是对原始的特征做了某种变化。

方差

方差衡量了数值的分散程度,并且衡量的是一维数据的分散程度。

最大可分性

不同的基可以对同样的一组数据给出不同的表示,如果基的数量少于向量的维度,则可以达到降维的效果。现在要选取基将向量降到K维,并且要最大程度保留原有信息。

希望投影后的投影值尽可能分散,即对于一维数据,找到一个一维基来使转换后的数据方差最少。

协方差

协方差衡量的是两个变量间的相关性。为了让两个变量尽可能表示更多的原始信息,我们希望他们之间不存在线性相关性,即不存在重复表示的信息。

现在,降维的优化目标为将一组N维向量降维K维,其目标是选择K个单位正交基,使得原始数据变换到这组基上后,各变量之间的协方差为0,而变量方差则尽可能大(即取最大的K个方差)

协方差矩阵

我们希望将变量内方差变量间协方差统一地表示,两者都可表示为内积的形式,而内积又与矩阵相乘密切相关。于是:

假设只有a和b两个变量,将其按行组成矩阵:

0ad790c273a66de35dcac116e5bb5474.png

c3d1b2a8d2c44c9cf99ed843a4266a34.png

这里假设各变量的均值为0

推广:我们有 m 个 n 维数据记录,将其排列成矩阵

,设
,则 C 是一个对称矩阵,其对角线分别对应各个变量的方差,而第 i 行 j 列和 j 行 i 列元素相同,表示 i 和 j 两个变量的协方差

设原始数据矩阵 X 对应的协方差矩阵为 C,而 P 是一组基按行组成的矩阵,设 Y=PX,则 Y 为 X 对 P 做基变换后的数据。设 Y 的协方差矩阵为 D,我们推导一下 D 与 C 的关系:

69b22909a5f92dc1d5fd2682a9fe05a0.png

矩阵对角化

根据优化条件,我们需要将对角线外的其他元素化为0,并且在对角线上的方差尽可能大。

我们要找的 P 是能让原始协方差矩阵对角化的 P。换句话说,优化目标变成了寻找一个矩阵 P,满足

是一个对角矩阵,并且对角元素按从大到小依次排列,那么 P 的前 K 行就是要寻找的基,用 P 的前 K 行组成的矩阵乘以 X 就使得 X 从 N 维降到了 K 维并满足上述优化条件

由上文知道,协方差矩阵 C 是一个是对称矩阵,在线性代数中实对称矩阵有一系列非常好的性质:

  1. 实对称矩阵不同特征值对应的特征向量必然正交。
  2. 设特征向量
    重数为 r,则必然存在 r 个线性无关的特征向量对应于
    ,因此可以将这 r 个特征向量单位正交化。

由上面两条可知,一个 n 行 n 列的实对称矩阵一定可以找到 n 个单位正交特征向量,设这 n 个特征向量为

,我们将其按列组成矩阵:

则对协方差矩阵 C 有如下结论:

d3f07a1ee8e3e3070cd7a1996f44954d.png

其中

为对角矩阵,其对角元素为各特征向量对应的特征值(可能有重复)。

到这里,我们发现我们已经找到了需要的矩阵 P:

P 是协方差矩阵的特征向量单位化后按行排列出的矩阵,其中每一行都是 C 的一个特征向量。如果设 P 按照

中特征值的从大到小,
将特征向量从上到下排列,则用 P 的前 K 行组成的矩阵乘以原始数据矩阵 X,就得到了我们需要的降维后的数据矩阵 Y。

主成分分析(principal component analysis)

我们当然想把属性变“简单”,同时又不丢掉重要的信息。

一个例子:

dda0d501324b568e60067385f973d44e.png

方差可以理解为信息,方差越大,那么特征的范围也就越大,比如身高从1m2到1m8都有。方差小,身高小,都中在1m5,那么它的信息也就少。所以如果要选择x1还是x2好的话选x1要好一些。

3c874fbd263ecc98a727a669a1e931aa.png

实际上这种情况却很多,所以这时候该怎么选择属性呢?

想法如下:

15099dd4675bfbc48926430cb6e77314.png

506c1868c712f4e97c1718e11aee0598.png

bf2474fa0eee8b474ebee21acba80e35.png

最终选择y1。

即:

9a01485d22b65c77320a9b511bfaeb7a.png

总结一下 PCA 的算法步骤:

设有 m 条 n 维数据。

  1. 将原始数据按列组成 n 行 m 列矩阵 X;
  2. 将 X 的每一行进行零均值化,即减去这一行的均值;
  3. 求出协方差矩阵
  4. 求出协方差矩阵的特征值及对应的特征向量;
  5. 将特征向量按对应特征值大小从上到下按行排列成矩阵,取前 k 行组成矩阵 P;
  6. 即为降维到 k 维后的数据。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值