PCA算法的简单理解

最近在学习PCA的时候一直不是很理解,直到看了知乎上的这篇回答,感觉很有收获。所以写一篇博客来简单谈谈自己对PCA的理解。

PCA要解决什么问题?
在一组数据中,存在一些相关性很高的数据(比如店铺的日客流量和当日销量),这样的相关性很高的数据在对于数据的训练起到的作用很小,反而会增加数据的复杂性(数据量太大难以处理),所以一般可以把类似的数据去除。
去除的标准是什么?
——我们希望降维得到的数据具有较高的非重复性特异性 )和较低的相关性,也就是说是得到的数据对于我们的结果都是有用的。

关于降维,我在这里举个例子以方便大家理解:
本来我们的特征有m个,店铺的日销量、日访问量、商品的库存、差评率、好评率、下单数 ……我们发现在这些特征量里面,日销量和下单数是重复的,并且和日访问量具有很强的关联性,差评率和好评率也是重复的,自然地我们在降维的时候希望对这些特征进行处理。
即我们希望得到的特征:
1、彼此之间很不一样,即描述事物的角度不同,也就是说对我们认识一件事情能够提供很多不同的信息(日销量、下单数、访问量都是描述的店铺卖东西的情况);
2、彼此之间没有什么相关性(日访问量很明显和日销量、下单数成正相关)。

数学上是怎么描述这两个特征的?

1、较高的非重复性:在降维的时候,以2维到1维为例,我们选择的降维方向应该是使得降维后的数据彼此之间有很大的差异,表现在下图中就是要使各样本在降维的方向上分布尽可能的分散,数学上表示就是使方差最大
在投影方向(蓝线)上,各样本点的投影之间应当有最大的分布差异
2、较低的相关性:这是2维到1维的情况,对于更高维度的降维,以3维到2维为例,与之前相同,首先我们希望找到一个方向使得投影后方差最大,这样就完成了第一个方向的选择,继而我们选择第二个投影方向。第二个投影方向的选择,由于我们想要最大程度的保留数据的特征,我们不希望第二个投影方向和第一个投影方向一样,这样是没有意义的,第二个方向的选择应该使数据具有较低的相关性,最好是使相关性为0,数学上表示就是使协方差为0.

所以我们的优化目标为: 将一组N维向量降为K维(K大于0,小于N),其目标是选择K个单位(模为1)正交基,使得原始数据变换到这组基上后,各字段两两间协方差为0,而字段的方差则尽可能大(在正交的约束下,取最大的K个方差)。

为了同时达到以上两个目标,我们希望找到一种数学形式,能够同时描述方差和协方差。

下面我们对这种数学形式进行推导:
首先定义降维
在这里插入图片描述
其中pi是N维行向量 ,P是一个R×N矩阵,ai是N维列向量,X是一个N×M矩阵(N维)(X中共有M个样本,ai表示第i个样本,每个样本有N个特征),降维后变成了一个R×M矩阵(记为Y,yi=piaj,每个样本yi有R个特征)(R维)
这就是由N维降为R维的矩阵形式。
简写为Y=PX

优化目标的数学描述:
先假定一个X矩阵,包含m个维度为2的向量x(i)=(ai,bi)
在这里插入图片描述
对它做如下运算:
在这里插入图片描述
称上述矩阵为协方差矩阵C:
在这里插入图片描述
我们发现这个矩阵对角线上的两个元素分别是两个字段的方差,而其它元素是a和b的协方差。两者被统一到了一个矩阵内
(记住,我们的优化目标有两个:最大化方差和最小化协方差,但是我们只能有一个降维操作,所以将两者统一起来这一点很关键)

从优化目标我们可以知道,我们想要让协方差为零,即让这个矩阵变成一个对角矩阵,由线性代数相关知识可以得到:
在这里插入图片描述
写成矩阵形式:

在这里插入图片描述
E即为C的特征向量矩阵(每一列都是一个特征向量)
在这里插入图片描述
即我们的优化目标是找到协方差矩阵C的特征向量矩阵,能够将C对角化

这和降维有什么关系呢?
观察降维的数学形式:Y=PX
我们自然联想到要使用P这个矩阵去满足我们的优化目标。
设Y的协方差矩阵为D,我们推导一下D与C的关系:
在这里插入图片描述
现在事情很明白了!我们要找的P不是别的,而是能让原始协方差矩阵对角化的P。
换句话说,优化目标变成了寻找一个矩阵P,满足在这里插入图片描述是一个对角矩阵,并且对角元素按从大到小依次排列,那么P的前R行就是要寻找的基,用P的前R行组成的矩阵乘以X就使得X从N维降到了R维并满足上述优化条件。

由此我们就找到了能够满足优化目标的降维方法,概括来说就是对于降维Y=PX(由N维降为R维),找到原始矩阵X的协方差矩阵的特征向量矩阵,按照特征值从大到小的排列顺序取其前R行,即得到降维矩阵P。

总结一下PCA的算法步骤: 设有m条n维数据。
1)将原始数据按列组成n行m列矩阵X
2)将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值
3)求出协方差矩阵C
4)求出协方差矩阵的特征值及对应的特征向量
5)将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P 6)Y=PX即为降维到k维后的数据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值