做网站要固定ip,网站开发tt0546,在线用代码做网站,网站运营风险分析主成分分析#xff08;Principal components analysis#xff09;-最大方差解释 在这一篇之前的内容是《Factor Analysis》#xff0c;由于非常理论#xff0c;打算学完整个课程后再写。在写这篇之前#xff0c;我阅读了PCA、SVD和LDA。这几个模型相近#xff0c;却都有自… 主成分分析Principal components analysis-最大方差解释 在这一篇之前的内容是《Factor Analysis》由于非常理论打算学完整个课程后再写。在写这篇之前我阅读了PCA、SVD和LDA。这几个模型相近却都有自己的特点。本篇打算先介绍PCA至于他们之间的关系只能是边学边体会了。PCA以前也叫做Principal factor analysis。 1. 问题 真实的训练数据总是存在各种各样的问题 1、 比如拿到一个汽车的样本里面既有以“千米/每小时”度量的最大速度特征也有“英里/小时”的最大速度特征显然这两个特征有一个多余。 2、 拿到一个数学系的本科生期末考试成绩单里面有三列一列是对数学的兴趣程度一列是复习时间还有一列是考试成绩。我们知道要学好数学需要有浓厚的兴趣所以第二项与第一项强相关第三项和第二项也是强相关。那是不是可以合并第一项和第二项呢 3、 拿到一个样本特征非常多而样例特别少这样用回归去直接拟合非常困难容易过度拟合。比如北京的房价假设房子的特征是大小、位置、朝向、是否学区房、建造年代、是否二手、层数、所在层数搞了这么多特征结果只有不到十个房子的样例。要拟合房子特征-房价的这么多特征就会造成过度拟合。 4、 这个与第二个有点类似假设在IR中我们建立的文档-词项矩阵中有两个词项为“learn”和“study”在传统的向量空间模型中认为两者独立。然而从语义的角度来讲两者是相似的而且两者出现频率也类似是不是可以合成为一个特征呢 5、 在信号传输过程中由于信道不是理想的信道另一端收到的信号会有噪音扰动那么怎么滤去这些噪音呢 回顾我们之前介绍的《模型选择和规则化》里面谈到的特征选择的问题。但在那篇中要剔除的特征主要是和类标签无关的特征。比如“学生的名字”就和他的“成绩”无关使用的是互信息的方法。 而这里的特征很多是和类标签有关的但里面存在噪声或者冗余。在这种情况下需要一种特征降维的方法来减少特征数减少噪音和冗余减少过度拟合的可能性。 下面探讨一种称作主成分分析PCA的方法来解决部分上述问题。PCA的思想是将n维特征映射到k维上kn这k维是全新的正交特征。这k维特征称为主元是重新构造出来的k维特征而不是简单地从n维特征中去除其余n-k维特征。 2. PCA计算过程 首先介绍PCA的计算过程 假设我们得到的2维数据如下 行代表了样例列代表特征这里有10个样例每个样例两个特征。可以这样认为有10篇文档x是10篇文档中“learn”出现的TF-IDFy是10篇文档中“study”出现的TF-IDF。也可以认为有10辆汽车x是千米/小时的速度y是英里/小时的速度等等。 第一步分别求x和y的平均值然后对于所有的样例都减去对应的均值。这里x的均值是1.81y的均值是1.91那么一个样例减去均值后即为0.69,0.49得到 第二步求特征协方差矩阵如果数据是3维那么协方差矩阵是 这里只有x和y求解得 对角线上分别是x和y的方差非对角线上是协方差。协方差大于0表示x和y若有一个增另一个也增小于0表示一个增一个减协方差为0时两者独立。协方差绝对值越大两者对彼此的影响越大反之越小。 第三步求协方差的特征值和特征向量得到 上面是两个特征值下面是对应的特征向量特征值0.0490833989对应特征向量为这里的特征向量都归一化为单位向量。 第四步将特征值按照从大到小的顺序排序选择其中最大的k个然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵。 这里特征值只有两个我们选择其中最大的那个这里是1.28402771对应的特征向量是。 第五步将样本点投影到选取的特征向量上。假设样例数为m特征数为n减去均值后的样本矩阵为DataAdjust(m*n)协方差矩阵是n*n选取的k个特征向量组成的矩阵为EigenVectors(n*k)。那么投影后的数据FinalData为 这里是 FinalData(10*1) DataAdjust(10*2矩阵)×特征向量 得到结果是 这样就将原始样例的n维特征变成了k维这k维就是原始特征在k维上的投影。 上面的数据可以认为是learn和study特征融合为一个新的特征叫做LS特征该特征基本上代表了这两个特征。 上述过程有个图描述 正号表示预处理后的样本点斜着的两条线就分别是正交的特征向量由于协方差矩阵是对称的因此其特征向量正交最后一步的矩阵乘法就是将原始样本点分别往特征向量对应的轴上做投影。 如果取的k2那么结果是 这就是经过PCA处理后的样本数据水平轴上面举例为LS特征基本上可以代表全部样本点。整个过程看起来就像将坐标系做了旋转当然二维可以图形化表示高维就不行了。上面的如果k1那么只会留下这里的水平轴轴上是所有点在该轴的投影。 这样PCA的过程基本结束。在第一步减均值之后其实应该还有一步对特征做方差归一化。比如一个特征是汽车速度0到100一个是汽车的座位数2到6显然第二个的方差比第一个小。因此如果样本特征中存在这种情况那么在第一步之后求每个特征的标准差然后对每个样例在该特征下的数据除以。 归纳一下使用我们之前熟悉的表示方法在求协方差之前的步骤是 其中是样例共m个每个样例n个特征也就是说是n维向量。是第i个样例的第j个特征。是样例均值。是第j个特征的标准差。 整个PCA过程貌似及其简单就是求协方差的特征值和特征向量然后做数据转换。但是有没有觉得很神奇为什么求协方差的特征向量就是最理想的k维向量其背后隐藏的意义是什么整个PCA的意义是什么 3. PCA理论基础 要解释为什么协方差矩阵的特征向量就是k维理想特征我看到的有三个理论分别是最大方差理论、最小错误理论和坐标轴相关度理论。这里简单探讨前两种最后一种在讨论PCA意义时简单概述。 3.1 最大方差理论 在信号处理中认为信号具有较大的方差噪声有较小的方差信噪比就是信号与噪声的方差比越大越好。如前面的图样本在横轴上的投影方差较大在纵轴上的投影方差较小那么认为纵轴上的投影是由噪声引起的。 因此我们认为最好的k维特征是将n维样本点转换为k维后每一维上的样本方差都很大。 比如下图有5个样本点已经做过预处理均值为0特征方差归一 下面将样本投影到某一维上这里用一条过原点的直线表示前处理的过程实质是将原点移到样本点的中心点。 假设我们选择两条不同的直线做投影那么左右两条中哪个好呢根据我们之前的方差最大化理论左边的好因为投影后的样本点之间方差最大。 这里先解释一下投影的概念 红色点表示样例蓝色点表示在u上的投影u是直线的斜率也是直线的方向向量而且是单位向量。蓝色点是在u上的投影点离原点的距离是即或者由于这些样本点样例的每一维特征均值都为0因此投影到u上的样本点只有一个到原点的距离值的均值仍然是0。 回到上面左右图中的左图我们要求的是最佳的u使得投影后的样本点方差最大。 由于投影后均值为0因此方差为 中间那部分很熟悉啊不就是样本特征的协方差矩阵么的均值为0一般协方差矩阵都除以m-1这里用m。 用来表示表示那么上式写作 由于u是单位向量即上式两边都左乘u得 即 We got it就是的特征值u是特征向量。最佳的投影直线是特征值最大时对应的特征向量其次是第二大对应的特征向量依次类推。 因此我们只需要对协方差矩阵进行特征值分解得到的前k大特征值对应的特征向量就是最佳的k维新特征而且这k维新特征是正交的。得到前k个u以后样例通过以下变换可以得到新的样本。 其中的第j维就是在上的投影。 通过选取最大的k个u使得方差较小的特征如噪声被丢弃。 这是其中一种对PCA的解释第二种是错误最小化放在下一篇介绍。 主成分分析Principal components analysis-最小平方误差解释 接上篇 3.2 最小平方误差理论 假设有这样的二维样本点红色点回顾我们前面探讨的是求一条直线使得样本点投影到直线上的点的方差最大。本质是求直线那么度量直线求的好不好不仅仅只有方差最大化的方法。再回想我们最开始学习的线性回归等目的也是求一个线性函数使得直线能够最佳拟合样本点那么我们能不能认为最佳的直线就是回归后的直线呢回归时我们的最小二乘法度量的是样本点到直线的坐标轴距离。比如这个问题中特征是x类标签是y。回归时最小二乘法度量的是距离d。如果使用回归方法来度量最佳直线那么就是直接在原始样本上做回归了跟特征选择就没什么关系了。 因此我们打算选用另外一种评价直线好坏的方法使用点到直线的距离d’来度量。 现在有n个样本点每个样本点为m维这节内容中使用的符号与上面的不太一致需要重新理解符号的意义。将样本点在直线上的投影记为那么我们就是要最小化 这个公式称作最小平方误差Least Squared Error。 而确定一条直线一般只需要确定一个点并且确定方向即可。 第一步确定点 假设要在空间中找一点来代表这n个样本点“代表”这个词不是量化的因此要量化的话我们就是要找一个m维的点使得 最小。其中是平方错误评价函数squared-error criterion function假设m为n个样本点的均值 那么平方错误可以写作 后项与无关看做常量而因此最小化时 是样本点均值。 第二步确定方向 我们从拉出要求的直线这条直线要过点m假设直线的方向是单位向量e。那么直线上任意一点比如就可以用点m和e来表示 其中是到点m的距离。 我们重新定义最小平方误差 这里的k只是相当于i。就是最小平方误差函数其中的未知参数是和e。 实际上是求的最小值。首先将上式展开 我们首先固定e将其看做是常量然后对进行求导得 这个结果意思是说如果知道了e那么将与e做内积就可以知道了在e上的投影离m的长度距离不过这个结果不用求都知道。 然后是固定对e求偏导数我们先将公式8代入得 其中 与协方差矩阵类似只是缺少个分母n-1我们称之为散列矩阵scatter matrix。 然后可以对e求偏导数但是e需要首先满足引入拉格朗日乘子来使最大最小令 求偏导 这里存在对向量求导数的技巧方法这里不多做介绍。可以去看一些关于矩阵微积分的资料这里求导时可以将看作是将看做是。 导数等于0时得 两边除以n-1就变成了对协方差矩阵求特征值向量了。 从不同的思路出发最后得到同一个结果对协方差矩阵求特征向量求得后特征向量上就成为了新的坐标如下图 这时候点都聚集在新的坐标轴周围因为我们使用的最小平方误差的意义就在此。 4. PCA理论意义 PCA将n个特征降维到k个可以用来进行数据压缩如果100维的向量最后可以用10维来表示那么压缩率为90%。同样图像处理领域的KL变换使用PCA做图像压缩。但PCA要保证降维后还要保证数据的特性损失最小。再看回顾一下PCA的效果。经过PCA处理后二维数据投影到一维上可以有以下几种情况 我们认为左图好一方面是投影后方差最大一方面是点到直线的距离平方和最小而且直线过样本点的中心点。为什么右边的投影效果比较差直觉是因为坐标轴之间相关以至于去掉一个坐标轴就会使得坐标点无法被单独一个坐标轴确定。 PCA得到的k个坐标轴实际上是k个特征向量由于协方差矩阵对称因此k个特征向量正交。看下面的计算过程。 假设我们还是用来表示样例m个样例n个特征。特征向量为e表示第i个特征向量的第1维。那么原始样本特征方程可以用下面式子来表示 前面两个矩阵乘积就是协方差矩阵除以m后原始的样本矩阵A是第二个矩阵m*n。 上式可以简写为 我们最后得到的投影结果是E是k个特征向量组成的矩阵展开如下 得到的新的样例矩阵就是m个样例到k个特征向量的投影也是这k个特征向量的线性组合。e之间是正交的。从矩阵乘法中可以看出PCA所做的变换是将原始样本点n维投影到k个正交的坐标系中去丢弃其他维度的信息。举个例子假设宇宙是n维的霍金说是11维的我们得到银河系中每个星星的坐标相对于银河系中心的n维向量然而我们想用二维坐标去逼近这些样本点假设算出来的协方差矩阵的特征向量分别是图中的水平和竖直方向那么我们建议以银河系中心为原点的x和y坐标轴所有的星星都投影到x和y上得到下面的图片。然而我们丢弃了每个星星离我们的远近距离等信息。 5. 总结与讨论 这一部分来自http://www.cad.zju.edu.cn/home/chenlu/pca.htm PCA技术的一大好处是对数据进行降维的处理。我们可以对新求出的“主元”向量的重要性进行排序根据需要取前面最重要的部分将后面的维数省去可以达到降维从而简化模型或是对数据进行压缩的效果。同时最大程度的保持了原有数据的信息。 PCA技术的一个很大的优点是它是完全无参数限制的。在PCA的计算过程中完全不需要人为的设定参数或是根据任何经验模型对计算进行干预最后的结果只与数据相关与用户是独立的。 但是这一点同时也可以看作是缺点。如果用户对观测对象有一定的先验知识掌握了数据的一些特征却无法通过参数化等方法对处理过程进行干预可能会得不到预期的效果效率也不高。 图表 4黑色点表示采样数据排列成转盘的形状。 容易想象该数据的主元是或是旋转角。 如图表 4中的例子PCA找出的主元将是。但是这显然不是最优和最简化的主元。之间存在着非线性的关系。根据先验的知识可知旋转角是最优的主元类比极坐标。则在这种情况下PCA就会失效。但是如果加入先验的知识对数据进行某种划归就可以将数据转化为以为线性的空间中。这类根据先验知识对数据预先进行非线性转换的方法就成为kernel-PCA它扩展了PCA能够处理的问题的范围又可以结合一些先验约束是比较流行的方法。 有时数据的分布并不是满足高斯分布。如图表 5所示在非高斯分布的情况下PCA方法得出的主元可能并不是最优的。在寻找主元时不能将方差作为衡量重要性的标准。要根据数据的分布情况选择合适的描述完全分布的变量然后根据概率分布式 来计算两个向量上数据分布的相关性。等价的保持主元间的正交假设寻找的主元同样要使。这一类方法被称为独立主元分解(ICA)。 图表 5数据的分布并不满足高斯分布呈明显的十字星状。 这种情况下方差最大的方向并不是最优主元方向。 另外PCA还可以用于预测矩阵中缺失的元素。 6. 其他参考文献 A tutorial on Principal Components Analysis LI Smith – 2002 A Tutorial on Principal Component Analysis J Shlens http://www.cmlab.csie.ntu.edu.tw/~cyy/learning/tutorials/PCAMissingData.pdf http://www.cad.zju.edu.cn/home/chenlu/pca.htm 联系本文作者交流或者索取相关代码及软件请加入QQ群:小马哥的技术分享 413939157.转载于:https://www.cnblogs.com/hadoop2015/p/10199530.html