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

    PCA算法的优化目标是用低维数据来近似表示高维数据,低维数据两两不相关,并保留绝大部分的数据方差。在执行算法之前,首先对数据进行均值归一化和特征缩放处理,也就是将样本的每维数据都转化均值为零、方差为一的标准化随机变量。本文假设您了解线性空间和基变换、正交变换、对称矩阵的对角化等知识,文中出现的向量默认都是列向量。


    设矩阵X_{n\times m}表示m个n维随机样本,向量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^T的n个经过正交化和单位化之后的特征向量组成的正交矩阵,\Lambda 是以(1/m) * XX^T的n个特征值为对角元的对角矩阵。这就证明了矩阵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_k,P_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进行特征分解或奇异值分解得到,确定了矩阵P和k值后即完成了PCA降维算法。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容