码迷,mamicode.com
首页 > 其他好文 > 详细

主成分分析(PCA)中的误差表示

时间:2015-03-17 08:12:37      阅读:656      评论:0      收藏:0      [点我收藏+]

标签:

给定nm维样本X-(1), X(2),…,X(n),假设我们的目标是将这n个样本从m维降低到k维,并且尽可能保证这种降维的操作不会产生很大的代价(重要信息的丢失)。换句话说,我们要把n个样本点从m维空间投影到k维空间。对于每一个样本点,我们都可以用下式表示此投影过程:

        Z=ATX                                                                       (1)

其中X是m维样本点, Z 是投影后得到的k维样本点,A是一个 m * k 的矩阵。

回顾一下,如果采用主成分分析法(PCA)来进行降维的话,我们首先求出样本的均值:

技术分享

再求出散布矩阵(scatter matrix):

技术分享

接着求得散布矩阵Sk大特征值所对应的特征向量s1,s2,…,sk,然后对s1,s2,…,skk个向量进行单位化,即使得||s1||=||s2||=…=||sk||=1,最后得到式(1)中的矩阵A

                                                 技术分享                                                               (2)

例子: 为了更直观地从几何上理解式(1)的含义,我们以一组2维数据作为例子,在这个例子当中,我们使用PCA的方法将这组2维数组降到1维。矩阵A所存储的这些特征向量,实际上降维后的是新坐标轴,而在这个例子当中,我们得到的是一个新的1维坐标轴。如图1所示,图中的红色叉点代表2维样本点垂直投影到这个新坐标轴上的点。对于每一个2维空间上的样本点X,只要我们将它代入式(1)就可以计算出其降维后的表达(在这个例当中,则是一个1维的向量,即一个值):

                            技术分享                     (3)

      技术分享

                                            图1  10个样本点在2维空间上的表达


而式(3)算出来的这个值,实际上是这些投影点离原点的距离。因此,我们可以画出一个数轴来表示这个新的坐标轴,再根据式(3)算出来的这些值,在数轴上标出它们的位置,如图2所示。

       技术分享

                                           图2  10个样本点降到1维空间后的表达

这一组样本点降维后所产生的损失,可以通过下式来计算:

                                                技术分享                                             (4)

为了理解式(4),我们首先需要理解AATX(i)。回顾刚刚所说的,计算ATX(i)所得到的,实际上是样本点在低维空间上的表达(参考图2)。相对而言,X(i)是样本点在高维空间上的表达。然而,我们知道不同纬度空间的点是无法做比较的,举例来说,一个在2维空间上的点(x1, x2)是无法跟一个在1维空间上(y1)的点做比较的,因为它们纬度不一样(它们的所存在的世界不一样,它们不在同一个世界里)。

为了对2个不同纬度的样本点作比较,我们需要将它们放在同一个纬度空间下。一种合理的做法是,将低维空间上的点投影到高维空间,并假设高纬度的值为0。AATX(i)所做的工作就是把降维后的样本点反投影到高维空间上。以刚刚所举的例子来说,ATX(i)是图2上的叉点,而AATX(i)实际上是图1中直线(新坐标轴)上的叉点。

      值得注意的是,图2和图1上的这些叉点是一一对应的,无论在高维空间上还是在低维空间上,它们离原点的距离是不变的(仔细观察图1和图2中叉点离原点的距离)。我们仍然可以围绕这个例子,从理论上证明这一点,首先假设其中一个样本点 X降维后的表达为 Z=[ s 1 x 1+ s 2 x 2],那么对它从低维到高维(在此例中,是从1维到2维)的反向投影为:

                           技术分享                       (5)

现在,我们来证明式(5)中的Xapprox所表示的就是图1中的叉点。要证明这一点,我们需要证明两样东西:①Xapprox到原点的距离与Z到原点的距离相等,即||X||=||Z|| ②Xapprox在高维空间的超平面上(在此例中,高维空间是2维空间,低维空间是1维空间,超平面是一条直线)。

证明

                      技术分享

由于s经过单位化,即||s||=s12+s22=1,所以||Xapproax||=(s1x1+s2x2)2=||Z||,证毕.

证明

首先要得到超平面的一般表达式,而要得到超平面的一般表达式,就要计算出超平面所对应的法平面n,在此例中,法平面满足nTs=0,其中sT=[s1, s2]。我们可以得到n=[-s2/s1, 1],则超平面的一般表达式为(-s2/s1)x-1+x2=0。将XapproxT=[s1(s1x1+s2x2), s2(s1x1+s2x2)]代入(-s2/s1)x-1+x2,得到(-s2/s1) *s1(s1x1+s2x2)+s2(s1x1+s2x2)= -s2(s1x1+s2x2)+ s2(s1x1+s2x2)=0,说对于任意的Xapprox,都在超平面上,证毕.

回到式(4)当中,L所计算的是每个样本点在高维空间投影到低维空间后的距离总和。

主成分分析(PCA)中的误差表示

标签:

原文地址:http://my.oschina.net/JiamingMai/blog/387727

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!