现在的位置: 首页 > 综合 > 正文

浅谈PCA(2)

2013年08月20日 ⁄ 综合 ⁄ 共 996字 ⁄ 字号 评论关闭

        首先,抛开一切已有说法,用我自己的话说一遍,可能稍显寒碜。

        PCA的主要目的是降维,这里涉及到几个问题:什么是降维?降维的标准是什么?怎样实现降维?

        下面依次从这三个问题入手讨论。

        (1)什么是降维?

        这里维度的概念就不解释了。可以简单地将降维理解为:数据的维度越大,对于计算就越复杂,需要将高维数据表示在低维上以满足各种要求(至于为什么需要降维,可能在不同领域涉及到的问题是不一样的,在模式识别中,可能主要原因还是避免引起“维数灾难”等问题)。例如,在一个二维空间中,数据的维度是二,于是又坐标系中的x、y坐标值。但是由于各种原因,我们需要将二维的数据降到一维,即将在二维坐标系中的每个点投影到一维上,一条轴线上。于是引出了一下两个问题,降维的标准和降维的方法,即什么样的轴线是降维后原数据需要投影的轴线?怎样找到这条轴线?

        (2)降维的标准是什么?

        同样用刚才的例子,这个问题等同于:什么样的轴线才是符合我们要求的轴线?简单的回答就是方差大的那个方向,或者特征值大对应的特征向量的方向。如果认为将二维数据降到一维数据中,数据点离投影轴距离越远表示噪声越大,那么降维的目的就是要最小化总体噪声,找到最大信噪比的方向,而信噪比可以定义为方差比。例如一个椭圆形的数据点集,降维后的投影轴就是椭圆的长轴(我觉得为了说明这一个简单的现象我费了不少口舌,但是好像还是没有把问题简单化)。

        (3)怎样实现降维?

        假定我们已经证明了特征值大的方向就是我们要投影的主方向,那么降维的主要工作就是要找到从大到小排列的特征值对应的特征向量,有这些特征向量组成的特征变换矩阵,将原数据投影到降维后的数据空间。这里先这样假设吧。至于找特征值,在实现中有直接求特征值的方法和利用奇异值分解的方法,这里不讨论。

        好像还是不是很清楚,权当我自己的备忘理解吧。

        其次,根据其他资料中的说法,可以将PCA的步骤总结为以下几点:

        (1)将数据组织成为m*n的矩阵,m为维数,n为样本数。

        (2)对每一维,减去均值。

        (3)计算SVD或者协方差矩阵的特征向量。

        其实步骤是非常简单的,主要还是要理解这样做的意义。先到这里吧,后面再补充一些细节。

抱歉!评论已关闭.