赞
踩
有一个数据集有很多很多特征,在这里绘制两个特征:x1为长度,cm为单位;x2也为长度,尺寸为单位。
很明显,两个特征高度线性相关,两个都作为特征明显是多余的,而且由于测量时的误差和精度等问题,两则又是不一样的,所以很难舍弃一个特征而用另一个。为此需要将这两个特征变为一个特征,即将二维数据将至一维。如下图所示:
既然是高度线性相关,那么就可以绘制出一条直线,将每一个样本点投射到直线上,对应直线上的位置便是一维特征值 z 。注意,是投影,即样本点向直线做垂线,垂点就是 z 。这就将二维数据将至为一维。
我们再来看看三维特征。这三个特征依然是高度线性相关的,如下:
上图中,将数据全部投射到一个平面上,也就从三维降为二维。上述的投射方法也称之为主成分分析PCA(Principal Component Analysis) 。
为什么要降维?肯定是为了解决一些问题,达到我们想要的目的。
目的一:数据压缩。数据压缩之后可以使用较少的计算机内存或磁盘空间,而且可以加快我们的学习算法。倘若你是总工程师,下属三个工程队,三个工程队分别测量计算要盖大楼的属性即特征,然后都交给你,由于可能的测量方法不同和特征重复,使得自己做出抉择十分困难,这时就想着除去冗余特征,即降维,将1000维的数据降为100维。
目的二:数据可视化。为了更好的建立模型,我们都希望能更直观的观察数据,即将数据特征可视化,但是,现实中,数据集中的特征是非常多的,比如,我们有不同国家的数据,每一个特征向量都有50个特征,如下所示:
如果想要将这50维的数据可视化是不可能的。我们可以使用降维的方法将其将至2维,如此便可以可视化了。如下所示:
需要注意的是,降维的算法只负责减少维数,至于新产生特征的意义就必须有我们自己去发现。
前面降维所用的方法便是PCA,PCA也是最常见的降维算法。下面详细阐述一下PCA。
在PCA中,我们需要找到一个方向向量(Vector direction),当我们把所有的数据都投射到该向量上时,我们希望投射平均均方误差能尽可能小。方向向量是一个经过原点的向量,而投射误差是从特征向量向该方向向量做垂线的长度。如下如所示:
下面是PCA的描述:
问题是要将n维数据降至k维,目标是找到向量使得总的投射误差最小。
PCA的优点:
1.PCA对数据进行降维处理后,可以对新求出的“主元”向量(边会有出现后)的重要性进行排序,根据需要取前面最重要的部分,将后面的维数省去,可以达到降维的目的从而简化模型或是对数据进行压缩的效果。同时最大程度的保持了原有数据的信息。
2.PCA是完全无参数限制的。在PCA的计算过程中完全不需要人为的设定参数或是根据任何经验模型对计算进行干预,最后的结构至于数据相关,与用户是独立的。当然,这也是一种缺点,倘若用户对观测对象有了一定的先验知识,掌握了数据的一些特征,却无法通过参数化等方法对处理过程进行干预,可能会得不到预期的效果,效率也不高。
从上面的分析,可以看出,PCA也是绘制直线、平面等等,而且误差也很熟悉,这看上去与线性回归十分相似,但其实是完全不同的两种算法。以下是区别:
1.PCA最小化的是投射误差(Projected Error),而线性回归是最小化预测误差;
2.PCA不作任何预测,只是降维,而线性回归的目的是预测结果。
上图中,左边的是线性回归的误差(垂直于横轴投影),右边是PCA的误差(垂直于红线投影)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。