0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

由浅入深的对其降维原理进行了详细总结

lviY_AI_shequ 来源:lp 2019-03-22 14:01 次阅读

主成分分析(Principal components analysis,以下简称PCA)是最常用的降维方法之一,在数据压缩和消除冗余方面具有广泛的应用,本文由浅入深的对其降维原理进行了详细总结。

目录

1.向量投影和矩阵投影的含义

2. 向量降维和矩阵降维的含义

3. 基向量选择算法

4. 基向量个数的确定

5. 中心化的作用

6. PCA算法流程

7. PCA算法总结

1. 向量投影和矩阵投影的含义

如下图:

向量a在向量b的投影为:

其中,θ是向量间的夹角 。

向量a在向量b的投影表示向量a在向量b方向的信息,若θ=90°时,向量a与向量b正交,向量a无向量b信息,即向量间无冗余信息 。因此,向量最简单的表示方法是用基向量表示,如下图:

向量表示方法:

其中,c1是在e1方向的投影,c2是在e2方向的投影,e1和e2是基向量

我们用向量的表示方法扩展到矩阵,若矩阵的秩r(A)=n,

,其中ai(i=1,2,...,n)为n个维度的列向量,那么矩阵A的列向量表示为:

其中,e1,e2,...,en为矩阵A的特征向量 。

若矩阵A是对称矩阵,那么特征向量为正交向量,我们对上式结合成矩阵的形式:

由上式可知,对称矩阵A在各特征向量的投影等于矩阵列向量展开后的系数,特征向量可理解为基向量。

2. 向量降维和矩阵降维含义

向量降维可以通过投影的方式实现,N维向量映射为M维向量转换为N维向量在M个基向量的投影,如N维向量,M个基向量分别为在基向量的投影:

通过上式完成了降维,降维后的坐标为:

矩阵是由多个列向量组成的,因此矩阵降维思想与向量降维思想一样,只要求得矩阵在各基向量的投影即可,基向量可以理解为新的坐标系,投影就是降维后的坐标,那么问题来了,如何选择基向量?

3. 基向量选择算法

已知样本集的分布,如下图:

样本集共有两个特征x1和x2,现在对该样本数据从二维降到一维,图中列了两个基向量u1和u2,样本集在两个向量的投影表示了不同的降维方法,哪种方法好,需要有评判标准:(1)降维前后样本点的总距离足够近,即最小投影距离;(2)降维后的样本点(投影)尽可能的散开,即最大投影方差 。因此,根据上面两个评判标准可知选择基向量u1较好。

我们知道了基向量的选择标准,下面介绍基于这两个评判标准来推导基向量:

(1)基于最小投影距离

假设有n个n维数据,记为X。现在对该数据从n维降到m维,关键是找到m个基向量,假设基向量为{w1,w2,...,wm},记为矩阵W,矩阵W的大小是n×m。

原始数据在基向量的投影:

投影坐标计算公式:

根据投影坐标和基向量,得到该样本的映射点:

最小化样本和映射点的总距离:

推导上式,得到最小值对应的基向量矩阵W,推导过程如下:

所以我们选择的特征向量作为投影的基向量 。

(2) 基于最大投影方差

我们希望降维后的样本点尽可能分散,方差可以表示这种分散程度。

如上图所示,表示原始数据,表示投影数据,表示投影数据的平均值。所以最大化投影方差表示为:

下面推导上式,得到相应的基向量矩阵W,推导过程如下:

我们发现(4)式与上一节的(13)式是相同的。

因此,基向量矩阵W满足下式:

小结:降维通过样本数据投影到基向量实现的,基向量的个数等于降维的个数,基向量是通过上式求解的。

4. 基向量个数的确定

我们知道怎么求解基向量,但是我们事先确定了基向量的个数,如上节的m个基向量,那么怎么根据样本数据自动的选择基向量的个数了?在回答这一问题前,简单阐述下特征向量和特征值的意义。

假设向量wi,λi分别为的特征向量和特征值,表达式如下:

对应的图:

由上图可知,没有改变特征向量wi的方向,只在wi的方向上伸缩或压缩了λi倍。特征值代表了在该特征向量的信息分量。特征值越大,包含矩阵的信息分量亦越大。因此,我们可以用λi去选择基向量个数。我们设定一个阈值threshold,该阈值表示降维后的数据保留原始数据的信息量,假设降维后的特征个数为m,降维前的特征个数为n,m应满足下面条件:

因此,通过上式可以求得基向量的个数m,即取前m个最大特征值对应的基向量。

投影的基向量:

投影的数据集:

5. 中心化的作用

我们在计算协方差矩阵的特征向量前,需要对样本数据进行中心化,中心化的算法如下:

中心化数据各特征的平均值为0,计算过程如下:

对上式求平均:

中心化的目的是简化算法,我们重新回顾下协方差矩阵,以说明中心化的作用 。

,X表示共有n个样本数。

每个样本包含n个特征,即:

展开:

为了阅读方便,我们只考虑两个特征的协方差矩阵:

由(3)式推导(2)式得:

所以是样本数据的协方差矩阵,但是,切记必须事先对数据进行中心化处理 。

6. PCA算法流程

1)样本数据中心化。

2)计算样本的协方差矩阵

3)求协方差矩阵的特征值和特征向量,并对该向量进行标准化(基向量)。

3)根据设定的阈值,求满足以下条件的降维数m。

4)取前m个最大特征值对应的向量,记为W。

5)对样本集的每一个样本,映射为新的样本

6)得到映射后的样本集D'。

7. 核主成分分析(KPCA)介绍

因为可以用样本数据内积表示:

由核函数定义可知,可通过核函数将数据映射成高维数据,并对该高维数据进行降维:

KPCA一般用在数据不是线性的,无法直接进行PCA降维,需要通过核函数映射成高维数据,再进行PCA降维。

8. PCA算法总结

PCA是一种非监督学习的降维算法,只需要计算样本数据的协方差矩阵就能实现降维的目的,其算法较易实现,但是降维后特征的可解释性较弱,且通过降维后信息会丢失一些,可能对后续的处理有重要影响。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PCA
    PCA
    +关注

    关注

    0

    文章

    88

    浏览量

    29365
  • 向量
    +关注

    关注

    0

    文章

    55

    浏览量

    11587
  • 降维
    +关注

    关注

    0

    文章

    10

    浏览量

    7630

原文标题:主成分分析(PCA)原理总结

文章出处:【微信号:AI_shequ,微信公众号:人工智能爱好者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    求助,SVM分类时要不要先进行PCA呢?

    大家知道,既然SVM可以较好地解决小样本、非线性、高数等分类问题,那对于高样本输入,需不需要提前进行PCA呢?PCA
    发表于 10-27 20:13

    请问sv子程序是进行了标幺化处理吗

    ti公司提供的SV调制的子程序文件中,计算矢量作用时间的时候,没有按照公式除以Udc,请问是不是哪边进行了标幺化处理
    发表于 12-21 11:19

    请问OSTickISR在UCOSII哪个文件进行了定义?

    OSTickISR在UCOSII哪个文件进行了定义,怎么没有找到?
    发表于 04-02 06:36

    HV857已针对各种应用进行了优化

    EL灯驱动器,它采用Supertex HV857集成电路提供六个EL驱动电路。它们已针对各种应用进行了优化,可以按原样使用,也可以作为设计特定应用电路的起点
    发表于 07-26 08:39

    对结构体成员进行了赋值

    \n",L->c);为什么这种方式对结构体成员进行了赋值tt *L=aa;这里L除了指向数组首地址为什么还指向结构体的首地址tt aa[]={10,25,34,4,5,88,75};这个数组有没有指向结构体的首地址
    发表于 03-23 01:11

    在Virtex5-Q FPGA上进行了哪些资格测试?

    嗨, 我正在寻找有关Virtex5-Q FPGA资格的信息。在Virtex5-Q FPGA上进行了哪些资格测试?谢谢
    发表于 06-11 13:00

    请问一下Arm Cortex-M85性能的提升是对总线进行了优化吗?

    请问一下Arm Cortex-M85性能的提升是对总线进行了优化吗?
    发表于 09-21 11:28

    使用STlinkUtility v 4.5.0对闪存进行了不受保护的读取和写入操作,无法擦除闪存怎么解决?

    您好,我是从事 STM32G07 系列开发板的固件工程师。在使用闪存时,我使用 STlinkUtility v 4.5.0 对闪存进行了不受保护的读取和写入操作,此后我无法擦除闪存,因此无法调试和加
    发表于 12-30 08:23

    什么是LS1043 FIT率以及为得出FIT率进行了哪些测试?

    什么是 LS1043 FIT 率以及为得出 FIT 率进行了哪些测试?(器件数量、测试温度、故障、测试频率)?
    发表于 04-18 07:52

    C语言字符串操作总结大全(超详细

    本文对c语言字符串的操作进行了详细总结分析,需要的朋友可以参考。
    发表于 11-15 14:19 1917次阅读

    对国内的大硅片项目进行了整理核分析

    《推进纲要》发布以来,我国各地开始大兴晶圆制造项目。时值岁未,笔者对我国的大硅片项目进行了整理。
    的头像 发表于 12-27 10:57 1.8w次阅读
    对国内的大硅片项目<b class='flag-5'>进行了</b>整理核分析

    徐菲:对我国5G技术研发试验第三阶段规范进行了详细解读

    在今日举行的“5G技术研发试验第三阶段规范发布会”上,IMT-2020(5G) 推进组5G试验工作组组长徐菲对我国5G 技术研发试验第三阶段规范进行了详细解读。
    的头像 发表于 01-17 10:48 6091次阅读

    三安光电董事长就相关财务造假问题进行了回应

    2019年1月16日,受财务造假疑云的影响,三安光电当日早盘大幅低开并与盘中跌停,对此三安光电于午间紧急召开电话会议,董事长就相关财务造假问题进行了回应。
    的头像 发表于 01-21 09:15 1.2w次阅读

    Google对Google Camera进行了改进

    工作人员表示,他们已经改善了JIT,OTA速度,甚至对内核调度程序进行了一些更改。他们希望用户在Android Nougat中注意到所有这些。此外,他们强调,Android Nougat中的Doze light和背景限制将在不久的将来实施。
    的头像 发表于 04-22 09:27 1696次阅读

    DDR测试项总结详细步骤

    现在DDR应用越来越普遍,很多同事不清楚DDR都要进行哪些测试;本文对DDR的测试项进行了总结,供大家参考。
    发表于 06-26 15:45 26次下载