1. 问题

真实的训练数据总是存在各种各样的问题:

1、

比如拿到一个汽车的样本,里面既有以“千米/每小时”度量的最大速度特征,也有“英里/小时”的最大速度特征,显然这两个特征有一个多余。

2、

拿到一个数学系的本科生期末考试成绩单,里面有三列,一列是对数学的兴趣程度,一列是复习时间,还有一列是考试成绩。我们知道要学好数学,需要有浓厚的兴趣,所以第二项与第一项强相关,第三项和第二项也是强相关。那是不是可以合并第一项和第二项呢?

3、

拿到一个样本,特征非常多,而样例特别少,这样用回归去直接拟合非常困难,容易过度拟合。比如北京的房价:假设房子的特征是(大小、位置、朝向、是否学区房、建造年代、是否二手、层数、所在层数),搞了这么多特征,结果只有不到十个房子的样例。要拟合房子特征->房价的这么多特征,就会造成过度拟合。

4、

这个与第二个有点类似,假设在IR中我们建立的文档-词项矩阵中,有两个词项为“learn”和“study”,在传统的向量空间模型中,认为两者独立。然而从语义的角度来讲,两者是相似的,而且两者出现频率也类似,是不是可以合成为一个特征呢?

5、

在信号传输过程中,由于信道不是理想的,信道另一端收到的信号会有噪音扰动,那么怎么滤去这些噪音呢?

回顾我们之前介绍的《模型选择和规则化》,里面谈到的特征选择的问题。但在那篇中要剔除的特征主要是和类标签无关的特征。比如“学生的名字”就和他的“成绩”无关,使用的是互信息的方法。

而这里的特征很多是和类标签有关的,但里面存在噪声或者冗余。在这种情况下,需要一种特征降维的方法来减少特征数,减少噪音和冗余,减少过度拟合的可能性。说白了,就是一系列样品样品里面有很多个值,看其中哪个值在里面占主导地位,也就是主要的成分,当然这个值不是仅仅根据数值的大小,而是在不同样品中的变化度,在不同样品中变化越大,说明这个值就越能体现样品的不同,反之,如果所有样品中,某个变量变化不大,则可以排除这个变量在不同样品中的分量,所以在不同样品中变化越大的那个变量,我们就叫做主要的成分。

下面探讨一种称作主成分分析(PCA)的方法来解决部分上述问题。PCA的思想是将n维特征映射到k维上(k),这k维是全新的正交特征。这k维特征称为主元,是重新构造出来的k维特征,而不是简单地从n维特征中去除其余n-k维特征。

主成分分析(或称主分量分析,principal

component analysis)由皮尔逊(Pearson,1901)首先引入,后来被霍特林(Hotelling,1933)发展了。

主成分分析是一种通过降维技术把多个变量化为少数几个主成分(即综合变量)的统计分析方法。这些主成分能够反映原始变量的绝大部分信息,它们通常表示为原始变量的某种线性组合。

主成分分析的一般目的是:

(1)变量的降维;

(2)主成分的解释。

一种统计方法,它对多变量表示数据点集合寻找尽可能少的正交矢量表征数据信息特征。将多个变量通过线性变换以选出较少个数重要变量的一种多元统计分析方法。又称主分量分析。在实际课题中,为了全面分析问题,往往提出很多与此有关的变量(或因素),因为每个变量都在不同程度上反映这个课题的某些信息。主成分分析首先是由K.皮尔森对非随机变量引入的,尔后H.霍特林将此方法推广到随机向量的情形。信息的大小通常用离差平方和或方差来衡量。

基本思想

主成分分析是设法将原来众多具有一定相关性(比如P个指标),重新组合成一组新的互相无关的综合指标来代替原来的指标。主成分分析,是考察多个变量间相关性一种多元统计方法,研究如何通过少数几个主成分来揭示多个变量间的内部结构,即从原始变量中导出少数几个主成分,使它们尽可能多地保留原始变量的信息,且彼此间互不相关.通常数学上的处理就是将原来P个指标作线性组合,作为新的综合指标。最经典的做法就是用F1(选取的第一个线性组合,即第一个综合指标)的方差来表达,即Var(F1)越大,表示F1包含的信息越多。因此在所有的线性组合中选取的F1应该是方差最大的,故称F1为第一主成分。如果第一主成分不足以代表原来P个指标的信息,再考虑选取F2即选第二个线性组合,为了有效地反映原来信息,F1已有的信息就不需要再出现在F2中,用数学语言表达就是要求Cov(F1,

F2)=0,则称F2为第二主成分,依此类推可以构造出第三、第四,……,第P个主成分。

PCA计算过程

首先介绍PCA的计算过程:

假设我们得到的2维数据如下:

行代表了样例,列代表特征,这里有10个样例,每个样例两个特征。可以这样认为,有10篇文档,x是10篇文档中“learn”出现的TF-IDF,y是10篇文档中“study”出现的TF-IDF。也可以认为有10辆汽车,x是千米/小时的速度,y是英里/小时的速度,等等。

(注意,这里是10个样本,每个样本都是包含两个变量,现在是看哪个变量对样本的影响更大)

第一步分别求x和y的平均值,然后对于所有的样例,都减去对应的均值。这里x的均值是1.81,y的均值是1.91,那么一个样例减去均值后即为(0.69,0.49),得到

第二步,求特征协方差矩阵,如果数据是3维,那么协方差矩阵是

方差是各个数据与平均数之差的平方的平均数。协方差(Covariance)在概率论和统计学中用于衡量两个变量的总体误差

。其中E代表平均值,u,v分别是X,Y的平均值。

这里只有x和y,求解得

对角线上分别是x和y的方差,非对角线上是协方差。协方差大于0表示x和y若有一个增,另一个也增;小于0表示一个增,一个减;协方差为0时,两者独立。协方差绝对值越大,两者对彼此的影响越大,反之越小。

第三步,求协方差的特征值和特征向量,得到

上面是两个特征值,下面是对应的特征向量,特征值0.0490833989对应特征向量为(-735178656,0.677873399)T,这里的特征向量都归一化为单位向量。

从定义出发Ax=cx:A为矩阵,c为特征值,x为特征向量。在线性变换A的作用下,向量x仅仅在尺度上变为原来的

c倍。称

x 是线性变换A 的一个特征向量,c是对应的特征值。

第四步,将特征值按照从大到小的顺序排序,选择其中最大的k个,然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵。

这里特征值只有两个,我们选择其中最大的那个,这里是1.28402771,对应的特征向量是(-0.677873399,-0.735178656)T.

第五步,将样本点投影到选取的特征向量上

假设样例数为m,特征数为n,减去均值后的样本矩阵为DataAdjust(m*n),协方差矩阵是n*n,选取的k个特征向量组成的矩阵为EigenVectors(n*k)。那么投影后的数据FinalData为

这里是

FinalData(10*1) = DataAdjust(10*2矩阵)×特征向量(-0.677873399,-0.735178656)T

得到结果是

这样,就将原始样例的n维特征变成了k维,这k维就是原始特征在k维上的投影。

上面的数据可以认为是learn和study特征融合为一个新的特征叫做LS特征,该特征基本上代表了这两个特征。

上述过程有个图描述:

正号表示减去平均值后的样本点,斜着的两条线就分别是正交的特征向量(由于协方差矩阵是对称的,因此其特征向量正交),最后一步的矩阵乘法就是将原始样本点分别往特征向量对应的轴上做投影。

如果取的k=2,那么结果是

这就是经过PCA处理后的样本数据,水平轴(上面举例为LS特征)基本上可以代表全部样本点。整个过程看起来就像将坐标系做了旋转,当然二维可以图形化表示,高维就不行了。上面的如果k=1,那么只会留下这里的水平轴,轴上是所有点在该轴的投影。

这样PCA的过程基本结束。在第一步减均值之后,其实应该还有一步对特征做方差归一化。比如一个特征是汽车速度(0到100),一个是汽车的座位数(2到6),显然第二个的方差比第一个小。因此,如果样本特征中存在这种情况,那么在第一步之后,求每个特征的标准差clip_image016[6],然后对每个样例在该特征下的数据除以clip_image016[7]。

归纳一下,使用我们之前熟悉的表示方法,在求协方差之前的步骤是

其中X(i)是样例,共m个,每个样例n个特征,也就是说X(i)

是n维向量。Xj(i)是第i个样例的第j个特征。

u是样例均值。

是第oj个特征的标准差。

整个PCA过程貌似及其简单,就是求协方差的特征值和特征向量,然后做数据转换。但是有没有觉得很神奇,为什么求协方差的特征向量就是最理想的k维向量?其背后隐藏的意义是什么?整个PCA的意义是什么?

3. PCA理论基础

要解释为什么协方差矩阵的特征向量就是k维理想特征,我看到的有三个理论:分别是最大方差理论、最小错误理论和坐标轴相关度理论。这里简单探讨前两种,最后一种在讨论PCA意义时简单概述。3.1

最大方差理论

在信号处理中认为信号具有较大的方差,噪声有较小的方差,信噪比就是信号与噪声的方差比,越大越好。如前面的图,样本在横轴上的投影方差较大,在纵轴上的投影方差较小,那么认为纵轴上的投影是由噪声引起的。

因此我们认为,最好的k维特征是将n维样本点转换为k维后,每一维上的样本方差都很大。

比如下图有5个样本点:(已经做过预处理,均值为0,特征方差归一)

下面将样本投影到某一维上,这里用一条过原点的直线表示(前处理的过程实质是将原点移到样本点的中心点)。

假设我们选择两条不同的直线做投影,那么左右两条中哪个好呢?根据我们之前的方差最大化理论,左边的好,因为投影后的样本点之间方差最大。

这里先解释一下投影的概念:

红色点表示样例X(i),蓝色点表示X(i)在u上的投影,u是直线的斜率也是直线的方向向量,而且是单位向量。蓝色点是X(i)在u上的投影点,离原点的距离是X(i)Tu。由于这些样本点(样例)的每一维特征均值都为0,因此投影到u上的样本点(只有一个到原点的距离值)的均值仍然是0。

回到上面左右图中的左图,我们要求的是最佳的u,使得投影后的样本点方差最大。

由于投影后均值为0,因此方差为:

旋转公式:

一、主成分的定义及导出

总方差中属于第i主成分yi

(或被yi所解释)的比例为

称为主成分yi的贡献率。λ为特征值

第一主成分y1的贡献率最大,表明它解释原始变量x1,x2,

⋯,xp的能力最强,而y2,y3, ⋯,yp的解释能力依次递减。

主成分分析的目的就是为了减少变量的个数,因而一般是不会使用所有p个主成分的,忽略一些带有较小方差的主成分将不会给总方差带来大的影响

参考资料:

http://www.mcu.edu.tw/department/management/stat/ch_web/etea/SPSS/Applied_Multivariate_Data_Analysis_ch6.pdf

pca各个向量之间的相关度_【T】排序--1--PCA主成分分析principal component analysis相关推荐

  1. pca各个向量之间的相关度_详细推导PCA算法

    本文主要思路如下: 1 PCA优化目标 PCA(主成分分析)是一种数据降维的方法,即用较少特征地数据表达较多特征地数据(数据压缩,PCA属于有损压缩).PCA推导有两种主要思路: 最大化数据投影后的的 ...

  2. pca各个向量之间的相关度_机器学习十大经典算法之PCA主成分分析

    PCA主成分分析法简介 主成分分析算法(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中,并期望在所投影的维度上数据的信息量最大(方差最大),以此使用较少的数 ...

  3. pca各个向量之间的相关度_主成分分析(PCA)特征选择算法详解

    1. 问题 真实的训练数据总是存在各种各样的问题: 1. 比如拿到一个汽车的样本,里面既有以"千米/每小时"度量的最大速度特征,也有"英里/小时"的最大速度特征 ...

  4. pca降维python实例_主成分分析(Principal component analysis, PCA)例子–Python | 文艺数学君...

    摘要这一篇是关于PCA的实战, 我们会举一个例子, 看一下PCA具体在实战中是如何来进行的. 同时我们会比较同一个数据下, 使用PCA(主成分分析)和FA(因子分析)得到结果的不同. 简介 这一篇文章 ...

  5. pca各个向量之间的相关度_PCA主成分分析

    降维就是一种对高维度特征数据预处理方法.降维是将高维度的数据保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的目的.降维的算法有很多,比如奇异值分解(SVD).主成分分析(PC ...

  6. pca各个向量之间的相关度_PCA算法原理及实现

    来自:海边的拾遗者 众所周知,PCA(principal component analysis)是一种数据降维的方式,能够有效的将高维数据转换为低维数据,进而降低模型训练所需要的计算资源. 以上是比较 ...

  7. JAVA实现PCA主成分分析_主成分分析PCA(principal component analysis)原理

    PCA在很多方面均有应用,但是之前没有仔细探究过,最近看了一些博客和论文,做一下总结. 主成分分析(Principal Component Analysis,PCA), 是一种统计方法.通过正交变换将 ...

  8. ML之MLiR:输入两个向量,得出两个向量之间的相关度

    ML之MLiR:输入两个向量,得出两个向量之间的相关度 目录 输出结果 实现代码 输出结果 实现代码 import numpy as np from astropy.units import Ybar ...

  9. 机器学习与高维信息检索 - Note 4 - 主成分分析及其现代解释(Principal Component Analysis, PCA)及相关实例

    主成分分析及其现代解释 4. 主成分分析及其现代解释 Principal Component Analysis and Its Modern Interpretations 4.1 几何学解释 The ...

最新文章

  1. css中的margin和padding
  2. 金融新手投标模块布局小Demo
  3. 皮一皮:这个TONY有点厉害!
  4. mysql数据库容量查询
  5. Python Django 设置/更改响应头信息
  6. ubuntu ifconfig只有lo没有ens33的问题
  7. Hadoop Mapreduce分区、分组、二次排序过程详解[转]
  8. Flowmill :为分布式应用程序世界构建的网络可观察性解决方案
  9. centos 7和centos6修改默认启动模式的方法
  10. App推荐:这样的网易云,才是你想要的
  11. Linux 磁盘管理 一(Raid、LVM、Quota)
  12. report 和report on的区别
  13. (池州市地图)行政区划图高清矢量cdr|pdf(详细版2021年)
  14. 第九十九章 SQL函数 NOW
  15. java山地车 故障,山地车经常会出现的十个小故障,你都遇到了几个
  16. centos8在桌面添加pycharm和idea快捷方式没有allow launching选项问题
  17. 在excel中如何筛选重复数据_EXCEL如何快速筛选重复数据,并将结果快速复制到其他单元格...
  18. 什么是混合云、公有云、私有云?
  19. 使用Highcharts来画一个简易的甘特图
  20. 常见的测试类型及其测试方法(一)

热门文章

  1. 解决github图片不显示问题_2020/06/25更新
  2. 纽约时报:不知不觉Snapchat已为社交网络带来变革
  3. 服务器系统叹号灯,仪表盘亮起带叹号的灯泡是什么意思?细数5种陌生的故障灯标识...
  4. PVE(Proxmox Virtual Environment)OpenWRT安装使用教程
  5. java recordset_使用VBA Excel代码中的RecordSet数据创建图表
  6. three.js 常见光源类型
  7. STM32CubeIDE新建或导入自己的资源文件
  8. 唯一一种能走路的:“黑科技”。,曝诈网
  9. 计算机调剂材料与化工,材料与化工学院
  10. LoRa终端低功耗策略