白话机器学习算法(六) PCA

http://blog.csdn.net/wangxin110000/article/details/22175041

PCA是一种线性映射,目的是为了降维。

在机器学习算法中,映射可以降维也可以升高维度,看最终的目的是什么,如果为了简化输入特征,可以降维,如果数据在低维线性不可分,可以考虑将数据映射到高维空间中,那样可能就线性可分了,这就是核方法。

PCA属于前者;


讲PCA之前我要提几个概念

1:投影

2:协方差

3:正交向量

对于1,投影是一个标量,如果我们说 A在B方向上的投影,就是表示,A中的B分量的大小。这里B仅仅代表方向而没有长度,B是一个单位向量;

怎样算投影呢,就是求内积!

对于2,一般我们知道对于单个随机变量,有方差这个概念,当把单个随机变量推广到两个的时候,就有了协方差;

对于3,空间可以看成是若干正交向量张成的空间,该空间上的任意一个点都可以用这些正交向量加权起来;


现在我们有若干向量,这些向量呢,可以看成是一个高维随机向量的若干观测值,因而就有了均值,协方差的概念;

假设现在有个向量集合,每个向量就是一个观测值,有D个维度,我们观测M次 ;数据就可以用D乘以M的矩阵来表示,矩阵的一列就是一个观测结果;

现在用一个映射矩阵左乘这个数据矩阵,相当于将数据矩阵进行了映射,得到原来数据矩阵在新空间上的投影,也就有原数据在新的坐标空间上的表示,这个映射的目的是,使得映射结果属性间无关,而且第一行的方差>第二行的方差>.....>最后一行的方差;这么做可以保留数据的个性,剔除数据的共性,去除属性间的相关性;

去除属性间的相关性是通过 映射矩阵每行的正交性获得;

映射矩阵如何获得?

对原数据的协方差矩阵进行特征值分解,将获得的正交化的特征向量,按照对应特征值由大到小按行排列就能得到;

PCA的思想就是坐标变换,通过构建一个新的正交空间,重新构建原数据,这个思想跟傅里叶变换是一致的,说白了,就是换一种表示方法;

如上图,原来用x,y坐标表示的点坐标,我可以用a,b坐标来表示,当我需要降维的情况下,我只用a坐标就能大概表示这些数据的特征,问题就集中在怎么构建这样一个新的坐标系了。上面已经回答;

具体的证明:方差最大化(目标函数)+拉格朗日(略)


总结:PCA的目的是用最少的维度来保留原数据的最大信息,这种映射对数据的实际划分作用并不大!

实际上映射以后,两点在原空间的欧式距离>=两点在新空间的欧式距离。

这是他的原理决定的,不能对PCA要求过高,或者把它用在错误的地方!

如果我们需要一种降维以后两类间的距离变得更大了,而类内距离变紧凑了,在线性方法中我们可以找LDA这位哥们,传说中的Fisher判别分析;


最后:一位面试官问我PCA与GTM的区别,当时因为那天种种原因,未能答清楚,这里补充下吧:两者从结果看都是映射,都能降维度,但是降维的目的不同,最终目标空间意义也不同,PCA还是欧式空间的坐标变换,GTM是概率空间的映射,GTM映射后距离近,说明两者属于同一类别(即属于同一个高斯分布)的概率大,GTM的映射空间是人为定义的,仅仅作为高维数据可视化的使用,PCA则是赤裸裸的换个坐标(角度)看数据!


以后博客会详细讲讲GTM(生成拓扑映射)!


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值