写点什么

主成分分析 PCA 与奇异值分解 SVD- 降维的实现方法

  • 2022-11-16
    山东
  • 本文字数:1912 字

    阅读完需:约 6 分钟

二维特征矩阵降维


  1. 输入原数据,结构为,即三个样本,每个样本两个维度。找出原来的 2 个特征对应的直角坐标系,本质是找出 2 个特征构成的 2 为平面

  2. 决定降维后的特征数量:1

  3. 旋转找出一个新坐标系,本质是找出 2 个新的特征向量,以及它们构成的新二维平面,新特征向量让数据能够在压缩到少数特征上,并且总信息量不损失太多

  4. 找出数据点在新坐标系上,2 个新坐标轴上的坐标

  5. 选取第 1 个方差最大的特征向量,删掉没有被选中的特征,成功将二维平面降为一维


p 维特征矩阵降维


  1. 输入原数据,结构为,即 n 个样本,每个样本 p 个维度。找出原来的 p 个特征向量构成的 p 维空间 V

  2. 决定降维后的特征数量:k

  3. 通过某种变化,找出 p 个新的特征向量,以及它们构成的新 p 维空间 V

  4. 找出原始数据在新特征空间 V 中的 p 个新特征向量上对应的值,即将数据映射到新空间中

  5. 选取前 k 个信息量最大的特征,删掉没有被选中的特征,成功将 p 为空间 V 降为 k 维


在步骤 3 当中,我们用来找出 n 个新特征向量,让数据能够被压缩到少数特征上并且总信息量不损失太多的技术就是矩阵分解。PCA 和 SVD 是两种不同的降维算法,但他们都遵从上面的过程来实现降维,只是两种算法中矩阵分解的方法不同,信息量的衡量指标不同罢了。PCA 使用方差作为信息量的衡量指标,并且特征值分解来找出空间 V。降维时,它会将特征矩阵 X 分解为三个矩阵,其中是辅助的矩阵,是一个对角矩阵(即除了对角线上有值,其他位置都是 0 的矩阵),其对角线上的元素就是方差。降维完成之后,PCA 找到的每个新特征向量就叫做“主成分”,而被丢弃的特征向量被认为信息量很少,这些信息很可能就是噪音。而 SVD 使用奇异值分解来找出空间 V,分解为,其中也是一个对角矩阵,不过它对角线上的元素是奇异值(即特征值的开方),这也是 SVD 中用来衡量特征上的信息量的指标。分别是左奇异矩阵和右奇异矩阵,也都是辅助矩阵。


PCA 和特征选择技术都是特征工程的一部分,它们有什么不同?

特征选择是从已存在的特征中选取携带信息最多的,选完之后的特征依然具有可解释性,我们依然知道这个特征在原数据的哪个位置,代表着原数据上的什么含义。 PCA,是将已存在的特征进行压缩,降维完毕后的特征不是原本的特征矩阵中的任何一个特征,而是通过某些方式组合起来的新特征。通常来说,新特征矩阵生成之后也不具有可读性,我们无法判断新特征矩阵的特征是从原数据中的什么特征组合而来,新特征虽然带有原始数据的信息,却已经不是原数据上代表着的含义了。以 PCA 为代表的降维算法因此是特征创造(feature creation,或 feature construction)的一种。


实际上之前在白板推导系列笔记中有说到基本的 PCA 和 SVD


关于 SVD 推导

假如维矩阵,则为对称正定矩阵对称性:正定性:对于矩阵,有

其中为特征值,为特征向量。假定是一组正交基,那么有,那么

因此也是一组正交基,根据上述公式可以推导出

定义(非方阵的行列式)设,其中,定义,其中,定义

作者:castelu链接:非方阵的行列式_哔哩哔哩_bilibili

从而可以得到

根据上述公式,有

,可得

其中,进一步推导

从而得出

作者:陈楠链接:SVD奇异值分解逐步推导 - 知乎 (zhihu.com)


PCA 需要对协方差矩阵进行特征值分解,SVD 需要对进行特征值分解,如果取,二者等价,此时 PCA 可以转化成 SVD 求解


视频作者:菜菜TsaiTsai链接:【技术干货】菜菜的机器学习sklearn【全85集】Python进阶_哔哩哔哩_bilibili


发布于: 刚刚阅读数: 3
用户头像

一个烟台人 2022-09-14 加入

还未添加个人简介

评论

发布
暂无评论
主成分分析PCA与奇异值分解SVD-降维的实现方法_Python_烧灯续昼2002_InfoQ写作社区