主成分分析(PCA)

如题所述

第1个回答  2022-07-21
    本文记录的目的是方便自己学习和复习,有误之处请谅解,欢迎指出。

    主成分分析(Principal Component Analysis,PCA)是中最常用的降维算法之一,也可以用于数据压缩、去除冗余信息、消除噪声等方面。PCA的目的是找出一组低维数据来代表原高维数据,且保留原始数据中的主要信息。例如有m个数据集,n维特征,我们希望将n维特征降低到d维,而且让损失的信息尽可能小,具体怎么做呢?

    首先通过PCA找出第1个新坐标使得原始数据中方差最大;然后找出第2个新坐标与第1个坐标正交平面使得方差最大;再找出第3个坐标与1,2坐标正交平面使得方差最大...,以此类推,得到d个新维度特征。

    直接一点:就是求出样本集的协方差矩阵 的前d个特征值对应的特征向量,组成矩阵 ,然后对每个样本 进行变换 。

    1)特征去中心化,即每个维度特征减去其均值:

    2)计算协方差矩阵

    3) 对协方差矩阵进行特征值分解

    4)取前d个最大的特征值对应的特征向量组成矩阵 。

    5)对每个样本数据进行变换,

    6)得到降维后的数据

    假定现有10个二维数据集 (2.5,2.4), (0.5,0.7), (2.2,2.9), (1.9,2.2), (3.1,3.0), (2.3, 2.7), (2, 1.6), (1, 1.1), (1.5, 1.6), (1.1, 0.9) ,需要用PCA降到1维。

    首先样本去中心化,这里样本的均值为 (1.81, 1.91) ,所有的样本减去这个 均值 向量后,即中心化后的数据集为 (0.69, 0.49), (-1.31, -1.21), (0.39, 0.99), (0.09, 0.29), (1.29, 1.09), (0.49, 0.79), (0.19, -0.31), (-0.81, -0.81), (-0.31, -0.31), (-0.71, -1.01) 。

    求协方差矩阵:

    求出特征值为 (0.0490833989, 1.28402771) ,对应的特征向量分别为:

由于最大的k=1个特征值为1.28402771,对应的特征向量为 。这也就是特征矩阵 。

    对每个数据样本进转换 得到降维后的数据 (-0.827970186, 1.77758033, -0.992197494, -0.274210416, -1.67580142, -0.912949103, 0.0991094375, 1.14457216, 0.438046137, 1.22382056)
相似回答