美文网首页
PCA学习笔记

PCA学习笔记

作者: 吴金君 | 来源:发表于2018-08-02 17:42 被阅读0次

    1.引言

    使用主成分分析(PCA)的动机
      简单来讲,使用PCA就是为了把高维数据降成低维数据,然后就可以使用可视化分析工具分析特征或者用一些机器学习算法进行深入操作。常常作为一种数据预处理的方法,但还是有必要学习一下的,在很多领域都会用到PCA,数据特征降维众多应用之一。

    2.基于奇异值分解的PCA解释

    2.1 主成分分析中的主成分是什么?

      顾名思义,主成分分析就是把数据的主要成分给提取出来分析了,但是这个主成分怎么体现出来呢?(如果对奇异值分解不熟悉的话,建议先看下面的奇异值分解再跳回来看这段解释)那就取决于高维数据X奇异值分解过后得到的X=UDV^T,其中奇异值D对角阵中奇异值从大到小的顺序就决定了每个奇异值对应奇异向量的重要程度。换句话讲,奇异值越大,则其对应的奇异向量(U中对应的行向量,V中对应的列向量)越重要。那么这些奇异值较大的分量就是我们需要的主成分,我们提取主成分分量也是根据奇异值排列来进行的。
      这里说了一堆关于奇异值分解的东西,这相当地重要,不懂奇异值分解的话,PCA就有点难理解了。所以一定要先把奇异值分解搞懂了。

    补习:奇异值分解

      考研过研的人都没少算过矩阵的特征值分解,现在看来,那时候的纯数学学习仅仅是只见树木,不见森林啊!我们把这些东西用起来的时候才发现它的重要性,枯燥的数学往往让人绝望。数学之美就是巧妙地解决了各种各样的实际问题啊,在解决问题的过程里再看数学,就不会很枯燥了。废话不多说,简要回忆一下奇异值分解。接下来的内容主要参考(《深度学习》 Ian Goodfellow等人) 。

    首先需要明确的只有方阵才有特征分解,非方阵没有特征分解,因此才需要奇异值分解。假设我们我们用特征分解去分析一个矩阵A时,可以得到对应的特征向量矩阵V和特征值构成的向量\lambda,于是我们把矩阵A写成:
    A=Vdiag(\lambda)V^T
    实际上,奇异值分解和特征分解是类似的,通过奇异值分解,可以将A分解为:
    A=UDV^T
    其中,需要注意以下几点:
    1:各个矩阵的维度:假设Am*n,则Um*mDm*nVn*n.
    2:U的列向量称为左奇异向量,V的列向量称为右奇异向量,对角矩阵D是上的元素称为A的奇异值。
    3:UV都是正交矩阵,D是对角矩阵,但不一定是方阵。
    4:可以用A相关的特征分解解释A的奇异值分解:A的左奇异向量是AA^TA的右奇异向量是A^TA. A的非零奇异值是AA^T特征值的平方根,也是A^TA特征值的平方根.

    补习END

    2.2 PCA算法流程

    关于PCA的两个问题:
    第一,降维是具体是如何操作的;
    第二,将高维到低维压缩到低维还能保证保留主成分的机理是什么;
    我们通过PCA的算法流程来回答这两个问题。
    1.假设输入数据矩阵为m*n大小的X,m行代表每个样本,n列代表特征,我们首先对数据进行缩放,因为这个算法对数据数值大小是敏感的。对于每个样本中的每个特征我们都进行归一化:
    x^{(i)}_j=\frac{x^{(i)}_j-\mu_j}{s_j}
    其中特征序号i=1,2,...,n; 样本序号j=1,2,...,m.
    2.计算协方差矩阵
    \Sigma=\frac{1}{m}\sum^{m}_{i=1}X^TX
    3.奇异值分解
    SVD(\Sigma)=UDV^T
    4.从U中取出前k个左奇异向量,构造一个reduce矩阵U_{reduce}
    U_{reduce}=\{u_1,u_2,...,u_k\}
    5.计算新的特征向量Z
    Z=U_{reduce}^TX
    于是,我们就完成了PCA降维,用Z来表示X的主成分。当然也可以根据主成分特征向量Z来还原高维数据,上式两边同时左乘U_{reduce}就可以了,注意U_{reduce}是正交矩阵,具有性质U_{reduce}U_{reduce}^T=I.
    X \approx U_{reduce}Z
    第一个问题:降维是具体是如何操作的?
    答:通过对高维数据的奇异值分解得到左奇异向量,然后对左奇异向量进行约减得到约减矩阵U_{reduce},我们用约减矩阵U_{reduce}对原始高维数据X进行“编码”(坐标轴变化)得到降维后的数据Z.
    第二个问题:将高维到低维压缩到低维还能保证保留主成分的机理是什么?
    答:对原始数据X奇异值分解后,会得到奇异值矩阵D,每个奇异值都有对应的奇异向量,而奇异值的大小决定了这个奇异向量的重要性,对奇异值进行降序排列后,我们取前k个奇异向量作为坐标变换的特征向量基,然后进行坐标变换后就得到了低维空间中的数据Z

    参考文献:
    https://yoyoyohamapi.gitbooks.io/mit-ml/content/%E7%89%B9%E5%BE%81%E9%99%8D%E7%BB%B4/articles/PCA.html
    http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html#commentform
    《深度学习》,Ian Goodfellow等人

    相关文章

      网友评论

          本文标题:PCA学习笔记

          本文链接:https://www.haomeiwen.com/subject/wgdsvftx.html