主成分分析原理剖析随记

    作用:

        主要用于降维

    步骤:

        1 将样本所有维度(当然是你要降维的那些维度)进行去中心化(就是所有数据减去所在维度数据的均值).

        2 计算去中心化的数据的协方差矩阵

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

        4 找出特征值靠前的特征向量 (如果想把数据从4维降到2维 就找出两个)组成特征向量矩阵

        5将原始数据矩阵和特征向量矩阵进行举证乘法 就可以获得降维后的数据

    为什么可以要这么干,换句话说为什么这么干了降维后的数据能够在最大程度上代表原始数据?

        1  我们知道如果上述步骤2中的协方差矩阵是对角阵的话表示不同维度数据的协方差为0 换句话说表示不同维度的数据是没有任何关联的 也就是此时的数据分布为各个维度互相独立的正态分布(大多数情况下我们可以认为是正态分布,即便不是我们也可以按照正态分布去理解这个问题 这是机器学习常用的手段),这种情况下我们可以认为你降维后的数据也是没有什么意义的 我们在做实际的PCA的时候 类库一般都提供了查看特征值的方法这个时候我们可以检查我们在对数据进行降维的过程中 是否降维是有意义的.

        

        2  看上边这个图

            问 我们在对蓝色的点表示的二维数据(x1,x2 为维度)进行降维的时候我们应该讲图中那个直线进行压缩呢?

                是x1轴吗?很显然所有的数据会被压缩到只剩下x1这个维度的信息 x2轴同理

               是红色线吗 ?直观上我们感觉在数据向红线方向投影的时候会造成数据向某个维度的倾斜,也就很难代表真实的数据分 布

                你同样可以在脑海中构思很多条线出来,你会发现我们给出的黑色线无疑是最理想的线 数据在黑线上的投影会在最大                意义上代表我们原始数据的分布,你也许会问这样也会丢失信息啊,是的但是我们不是要降维吗(降维可以减少训练的时间,                会削弱噪声的影响,有时候降维后的学习成绩比原始数据直接做会更好!!!),这就是最好的选择.

          3 有了黑色这条线以及你对我们上述理论的认可我们就要把数据往这条线上投影了,当然我们给出的橙色的方向是正确的投影方向 我们给出蓝色和绿色的线只是在提醒读者别想歪了 那是不对的方向.

           4 在实际运算中我们每一个的数据点都可以理解为一个向量(x1,y1) 我们要计算每一个点到黑线的投影就要计算数据点所代表的向量和黑色线所代表的的单位向量的点乘(这本来就是点乘的定义 这没什么问题吧),数据点坐标我们有了 黑色线的单位向量是什么呢?

            5 我们知道 独立的二元标准正态分布概率密度图像 是一个中心在原点 半径为1的圆形 当然越靠近原点密度越大,这个时候数据的均值为(0,0),如果我们想改变 这个圆形的中心 我们只需要把我们的数据矩阵的一个以上的维护加上一个不为零的矩阵就可以了例如[a,b]当然矩阵的行数与数据的行数一致,这个时候分布图像的中心点就是(a,b).此时分布的协方差矩阵还是对角阵并且对角线上的值都是1.因为我们只是改变了数据的均值并没有改变他们之间的距离 方差不变方差为单位阵I.

            6 如果我们要把这个圆形变成椭圆形该怎么办呢?这个时候我们就要用一下线性代数的思维,其实将圆形装变为椭圆形 可以理解为将空间向着某个方向进行拉伸 而对角阵正好对应着空间的拉伸(此处可以百度 或者看相关动画),例如我们将标准二元分布的数据进行拉伸的话 我们可以将数据矩阵右乘[[2,0],[0,1]]这个矩阵D(其实这代表了数据协方差矩阵的特征值),可以想象所有数据都在x轴这个方向怎大了2倍而在y轴方向并没有变化,现在我们成功的把概率密度的图像从一个以原点为圆心的圆形变成了以(a,b)为圆心的椭圆形了.这个时候的协方差矩阵还是对角阵只不过对角上的数值已经不相等了因为我们拉伸的方向的x轴数据都被拉伸了他们之间的距离也同样被拉伸了自然这个方向的方差为变大了,方差为D^2还有这个时候我们的不同维度数据的协方差依然为0 .我们可以自己画个图像看看 随着一个维护数据的增大另一维度的数据没有什么变化的趋势 也就是两个维度的数据是无关的独立的.

            7 我们离把图像变成我们上图给出的图像就差一步了 那就是把我们上一步得到的图像进行旋转,在线性代数中我们往往用正交矩阵代表着对空间的旋转 ,例如我们把所有的数据右乘矩阵[[√2/2,-√2/2],[√2/2,√2/2]]Q的时候所有的点都被向逆时针正方向旋转了45度(读者可以随便找两个点计算一下)也就是此时0,1这个原先在横轴的向量 变成了(√2/2,√2/2])这个向量 ,这个向量就是我们上文提到的黑线所在单位向量。这个时候的数据协方差矩阵为QD^2Q转置(这个地方读者可以找相关书籍看协方差的运算公式) .到此我们发现咱们的要求的黑线的单位向量就正好是矩阵Q后半部分,其实对应了协方差特征向量矩阵中特征值较大的那个特征向量.终于要接近我们想说的重点了

            8 按照我们在上文给出的pca的步骤我们其实有了数据的协方差矩阵了 然后我们通过上一条得出结论我们要找协方差矩阵的特征值最大的那n个特征向量,然后别忘了协方差矩阵一定是对称阵 对称阵最好的特性就是他等于他的特征向量的矩阵的转置乘以一个对角阵再乘以特征向量的矩阵.这样一来其实我们通过一些类库对我们得到的协方差矩阵求解协方差矩阵的特征向量矩阵和特征值矩阵(其实结合上一条我们很轻松就能得出对称矩阵的特征向量之间一定是正交的这一结论,说白了对称阵就代表了对空间进行拉伸再旋转的过程) 就能够轻松获取我们需要的特征向量也就是我们所说的黑色线的单位向量(其实整个pca的过程也只需要一行代码调用类库就可以^_^,本文就本人在理解pca过程中的一点感悟记录了一下,因为我一开始对为什么pca可以对数据降维真的一点都不理解)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值