前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PCA主成分分析

PCA主成分分析

作者头像
用户7569543
发布2020-07-17 14:10:20
7800
发布2020-07-17 14:10:20
举报

前面两节课跟大家分别介绍了聚类和关联规则,它们都属于无监督学习的典型应用,今天来介绍无监督学习的另外一种常见应用——降维!那么为什么要进行降维呢?因为高维的数据在现实中往往难以利用,而且每增加一个维度数据呈指数级增长,这可能会直接带来极大的「维数灾难」,而降维就是在高维的数据中使用降维算法把数据维度降下来,减少计算难度的一种做法。目前降维的算法有很多种,最常用的就是PCA主成分分析法。

PCA的作用

1、 降低计算代价

2、 去除噪音数据影响

3、 提升数据集利用率

PCA的主要思想是将原来n维特征映射到我们设定的k维特征上,这k维特征是经过降维后的正交特征也被称为主成分,是从原有n维特征基础上重新构造出来的新特征。PCA的工作就是从原始的空间中顺序地找到一组相互正交的坐标轴,新的坐标轴的选择与原数据是密切相关的。其中,第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中方差最大的,第三个轴是与第1,2个轴正交的平面中方差最大的,依次类推,可以得到n个这样的坐标轴。通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面k个含有绝大部分(90%或者更高,由我们事先设定)方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度。因为我们的目的是希望在实现降维过程中原数据信息损失尽可能小,那么如何让这k维的数据尽可能表示原来的数据呢?

我们先看看最简单的情况,也就是n=2,k=1,也就是将数据从二维降维到一维。数据如下图。我们希望找到某一个维度方向,它可以代表这两个维度的数据。图中列了两个向量方向,u1和u2,那么哪个向量可以更好的代表原始数据集呢?从直观上也可以看出,u1比u2好。

为什么u1比u2好呢?第一是样本点到这条直线的距离足够近,第二是样本点在这条直线上的投影能尽可能的分开。假如我们把n从1维推广到任意维,则我们的希望降维的标准为:样本点到这个超平面的距离足够近,或者说样本点在这个超平面上的投影能尽可能的分开。

最大方差理论

在信号处理中,通常认为信号具有较大的方差,而噪声有较小的方差,信噪比就是信号与噪声的方差比,越大越好。因此我们认为,最好的k维特征是将n维样本点变换为k维后,每一维上的样本方差都尽可能的大。

如上图所示,红色点表示原样本点x(i),u是蓝色直线方向向量,也是单位向量,直线上的蓝色点表示原样本点x(i)在u上的投影。容易得到投影点离原点的距离是XiTu,由于这些原始样本点的每一维特征均值都为0,因此投影到u上的样本点的均值仍然是0。假设原始数据集为X,我们的目标是找到最佳的投影空间Wk=(w1,w2,…,wk),其中wi是单位向量,且wi与wj(i≠j)正交,那么何为最佳的W?就是原始样本点投影到W上之后,使得投影后的样本点方差最大。由于投影后均值为0,因此投影后的总方差为:

1/m(Xi)X(i)T是不是似曾相识,没错,它就是原始数据集X的协方差矩阵(因为x(i)的均值为0,因为无偏估计的原因,一般协方差矩阵除以m−1,这里用m)。这里记

则有

上式两边同时左乘w,注意到wwT(单位向量),则有

所以w是矩阵∑的特征值所对应的特征向量。欲使投影后的总方差最大,即λ最大,因此最佳的投影向量w是特征值λ最大时所对应的特征向量,因此,当我们将w设置为与具有最大的特征值λ的特征向量相等时,方差会达到最大值。这个特征向量被称为第一主成分。通过类似的方式,我们可以方式定义第二第三...第k个主成分,方法为:在所有与考虑过的方向正交的所有可能的方向中,将新的方向选择为最大化投影方差的方向。如果我们考虑 k维投影空间的一般情形,那么最大化投影数据方差的最优线性投影由数据协方差矩阵 ∑ 的 k个特征向量 w1,...,wk 定义,对应于 k个最大的特征值 λ1,...,λk。可以通过归纳法很容易地证明出来。因此,我们只需要对协方差矩阵进行特征值分解,得到的前k大特征值对应的特征向量就是最佳的k维新特征,而且这k维新特征是正交的。得到前k个u以后,原始数据集X通过变换可以得到新的样本。

好了,原理介绍了这么多,最后我们来看下如何通过Python实现PCA主成分分析的降维实例。下面是部分实例代码

结果如下

结果证明,降维后预测准确率降低了大概0.01,但却用了更少的维度,达到了降维的目的。即在尽量保留原数据信息(方差)的基础上,用更少的维度表达出原数据集的信息。ok,本节课到此,下节课开始带来深度学习相关内容,敬请期待!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 多赞云数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档