PCA(主成份分析)算法的原理和推导

作者: 壮志_凌云 | 来源:发表于2019-05-05 14:55 被阅读1次

        PCA算法的优化目标是用低维数据来近似表示高维数据,低维数据两两不相关,并保留绝大部分的数据方差。在执行算法之前,首先对数据进行均值归一化和特征缩放处理,也就是将样本的每维数据都转化均值为零、方差为一的标准化随机变量。文中的向量指的都是列向量。

        设矩阵X_{n\times m}表示mn维随机样本,向量x表示其中的一个样本。我们希望在R^n空间内找到一个标准正交基P,原样本经过基变换后,不同维度的数据线性无关,即不同维度数据的协方差为零。

        向量x在基P中的新坐标z为:z = P^{-1}x = P^{T}x,所以样本X经过基变换后为样本Z,其中:

            Z = P^{-1}X = P^{T}X

        由于每维数据的样本均值都是零,所以样本Z的协方差矩阵为:

            Cov(Z) = (1/m) * ZZ^T = (1/m) * P^TXX^TP = P^{-1} ((1/m) * XX^T) P

        协方差矩阵Cov(Z)对角线上的n个数据表示n个维度的数据方差,其他数据表示不同维度数据的协方差,我们希望协方差矩阵Cov(Z)除了对角线之外的数据全部为零,即把矩阵(1/m) * XX^T对角化。

        注意到(1/m) * XX^T就是样本X的协方差矩阵,并且是一个n阶对称矩阵,那么一定存在正交矩阵P,使:

            P^{-1} ((1/m) * XX^T) P = P^T ((1/m) * XX^T) P = \Lambda

        其中P是由(1/m) * XX^Tn个经过正交化和单位化之后的特征向量组成的正交矩阵,\Lambda 是以(1/m) * XX^Tn个特征值为对角元的对角矩阵。这就证明了矩阵P解的存在性和组成结构。

        我们已经找到了矩阵P,现在希望把n维向量x映射到k (k \leq n)维向量z,并按比例保留t (0 < t < 1)的数据方差,其中k未知。通过下面的方法来确定最小的k值:

            \frac{ \sum_{i=1}^{k} \lambda_i  } { \sum_{i=1}^{n} \lambda_i }  \geq t,其中\lambda_i是按照倒序排列的特征值

        确定k值后,我们实际上就是找到了R^n空间中的一个子空间P_kP_k由前k个最大的特征值对应的特征向量组成。每一个样本x在子空间P_k上的投影即为映射到的k维向量z,其中:

            z = P_{k}^{T}x

        同时,n维样本X降维为k维样本Z,并保留了t的数据方差,其中:

            Z = P_{k}^{T}X

        矩阵P\Lambda 可以通过对协方差矩阵(1/m) * XX^T进行特征分解或奇异值分解得到,确定了矩阵Pk值后即完成了PCA降维算法。

    相关文章

      网友评论

        本文标题:PCA(主成份分析)算法的原理和推导

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