PCA主成分分析

 PCA主成分分析

优点:降低数据的复杂性,识别最重要的多个特征。

缺点:不一定需要, 且可能损失有用信息。

适用数据类型:数值型数据。

PCA背景知识:

移动坐标轴


考虑上图中的大量数据点。如果要求我们画出一条直线,这条线要尽可能覆盖这些点, 那么最长的线可能是哪条?我做过多次尝试。在上中 , 3条直线中B 最长 。在PCA中,我们对数据的坐标进行了旋转,该旋转的过程取决于数据的本身。第一条坐标轴旋转到覆盖数据的最大方差位置,即图中的直线B 。数据的最大方差给出了数据的最重要的信息。

在选择了覆盖数据最大差异性的坐标轴之后,我们选择了第二条坐标轴。假如该坐标轴与第一条坐标轴垂直, 它就是覆盖数据次大差异性的坐标轴。这里更严谨的说法就是正交(orthogonal)。当然,在二维平面下, 垂直和正交是一回事。在上图中, 直线 C 就是第二条坐标轴。利用PCA,我们将数据坐标轴旋转至数据角度上的那些最重要的方向。

***************************************************************************************************************************************************

我们已经实现了坐标轴的旋转,接下来开始讨论降维。 坐标轴的旋转并没有减少数据的维度。



考虑上图,其中包含着3个不同的类别。要区分这3个 类 别 , 可以使用决策树。决策树每次都是基于一个特征来做决策的。我们会发现,在 x 轴上可以找到一些值,这些值能够很好地将这3个类别分开。这 样 ,我们就可能得到一些规则,比 如 当 ( x < 4 ) 时 ,数据属于类别0 。如果使用 SVM 这样稍微复杂一点的分类器,我们就会得到更好的分类面和分类规则,比如当( w0 * x + w1 * y + b)  >  0 时 ,数据也属于类别0 。SVM 可能比决策树得到更好的分类间隔,但是分类超平面却很难解释。

通过 PCA 进行降维处理,我们就可以同时获得 SVM 和决策树的优点: 一方面,得到了和决策树一样简单的分类器,同时分类间隔和S V M — 样 好。 考察上图中下面的一副图,其中的数据来自于上面的图并经 PCA 转换之后绘制而成的。如果仅使用原始数据,那么这里的间隔会比决策树的间隔更大。 另 外 , 由于只需要考虑一维信息, 因此数据就可以通过比SVM 简单得多的很容易采用的规则进行区分。

在上图中,我们只需要一维信息即可,因为另一维信息只是对分类缺乏贡献的噪声数据。在二维平面下,这一点看上去微不足道, 但是如果在高维空间下则意义重大。

***************************************************************************************************************************************************

我们已经对 PCA 的基本过程做出了简单的阐述, 接下来就可以通过代码来实现 PCA 过程。前面我曾提到的第一个主成分就是从数据差异性最大( 即方差最大)的方向提取出来的,第二个主成分则来自于数据差异性次大的方向, 并且该方向与第一个主成分方向正交。通过数据集的协方差矩阵及其特征值分析,我们就可以求得这些主成分的值。

一旦得到了协方差矩阵的特征向量,我们就可以保留最大的外个值。这些特征向量也给出了N个最重要特征的真实结构。我们可以通过将数据乘上这况个特征向量而将它转换到新的空间。

注意:

特征值分析是线性代数中的一个领域,它能够通过数据的一般格式来揭示数据的“ 真实” 结构,即我们常说的特征向量和特征值。 . 在 等 式 如 A v = t v中,v 是特征向量,t  是特征值。特征值都是简单的标量值,因 此  A v = t v 代表的是:如果特征向量 v 被某个矩阵A 左乘,那么它就等于某个标量 x 乘以 v 。


将数据转换成前 N 个主成分的伪码大致如下:

去除平均值

计算协方差矩阵(http://zipperary.com/2014/01/12/covariance/)

计算协方差矩阵的特征值和特征向量

将特征值从大到小排序

保留最上面的 N 个特征向量

将数据转换到上述 N 个特征向量构建的新空间中

具体计算过程举例:

http://www.cnblogs.com/jerrylead/archive/2011/04/18/2020209.html


本博客没有解释:

1:为什么用协方差矩阵来计算特征向量,从而构建新的正交向量空间。(协方差用来来度量各个维度偏离其均值的程度)

2:为什么特征值越大,该特征向量方向上的数值越离散。

*********************************************************************************************************************************************************************

                                                                     帮助文档:

2.1实对称阵属于不同特征值的的特征向量正交的。


2.2:线性代数中方阵的一条性质:

*********************************************************************************************************************************************************************

3:协方差矩阵,协方差和协方差系数:

协方差:


协方差和相关系数的意义:
	1、协方差是一个用于测量投资组合中某一具体投资项目相对于另一投资项目风险的统计指标,通俗点就是投资组合中两个项目间收益率的相关程度,正数说明两个项目一个收益率上升,另一个也上升,收益率呈同方向变化。如果是负数,则一个上升另一个下降,表明收益率是反方向变化。协方差的绝对值越大,表示这两种资产收益率关系越密切;绝对值越小表明这两种资产收益率的关系越疏远。
	2、由于协方差比较难理解,所以将协方差除以两个投资方案投资收益率的标准差之积,得出一个与协方差具有相同性质却没有量化的数。这个数就是相关系数。计算公式为相关系数=协方差/两个项目标准差之积。
特征值和特征向量的几何意义:
特征向量确实有很明确的几何意义,矩阵(既然讨论特征向量的问题,当然是方阵,这里不讨论广义特征向量的概念,就是一般的特征向量)乘以一个向量的结果仍 是同维数的一个向量,因此,矩阵乘法对应了一个变换,把一个向量变成同维数的另一个向量,那么变换的效果是什么呢?这当然与方阵的构造有密切关系,比如可 以取适当的二维方阵,使得这个变换的效果就是将平面上的二维向量逆时针旋转30度,这时我们可以问一个问题,有没有向量在这个变换下不改变方向呢?可以想 一下,除了零向量,没有其他向量可以在平面上旋转30度而不改变方向的,所以这个变换对应的矩阵(或者说这个变换自身)没有特征向量(注意:特征向量不能 是零向量),所以一个变换的特征向量是这样一种向量,它经过这种特定的变换后保持方向不变,只是进行长度上的伸缩而已(再想想特征向量的原始定义Ax= cx,你就恍然大悟了,看到了吗?cx是方阵A对向量x进行变换后的结果,但显然cx和x的方向相同),而且x是特征向量的话,ax也是特征向量(a是标 量且不为零),所以所谓的特征向量不是一个向量而是一个向量族, 另外,特征值只不过反映了特征向量在变换时的伸缩倍数而已,对一个变换而言,特征向量指明的方向才是很重要的,特征值不是那么重要,虽然我们求这两个量时 先求出特征值,但特征向量才是更本质的东西!

比如平面上的一个变换,把一个向量关于横轴做镜像对称变换,即保持一个向量的横坐标不变,但纵坐标取相反数,把这个变换表示为矩阵就是[1 0;0 -1],其中分号表示换行,显然[1 0;0 -1]*[a b]'=[a -b]',其中上标'表示取转置,这正是我们想要的效果,那么现在可以猜一下了,这个矩阵的特征向量是什么?想想什么向量在这个变换下保持方向不变,显 然,横轴上的向量在这个变换下保持方向不变(记住这个变换是镜像对称变换,那镜子表面上(横轴上)的向量当然不会变化),所以可以直接猜测其特征向量是 [a 0]'(a不为0),还有其他的吗?有,那就是纵轴上的向量,这时经过变换后,其方向反向,但仍在同一条轴上,所以也被认为是方向没有变化,所以[0 b]'(b不为0)也是其特征向量,去求求矩阵[1 0;0 -1]的特征向量就知道对不对了!
矩阵就是刻画变换的,特征值和特征向量的几何意义是变换中的不变量

参考:

【1】:概率论与数理统计

【2】:机器学习实战

【3】:协方差公式及计算方法  http://blog.csdn.net/goodshot/article/details/8611178

【4】:http://zhidao.baidu.com/link?url=ndoQcswp4p-3lWgksQk1IyEWVtQGchlx0-hfBiA5JowKgVLc0S5aPUH

            3226huxueC_lE8FNecWFRNev-395wa

【5】:http://blog.sina.com.cn/s/blog_89cac57e01012uji.html

【6】:线性代数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值