算法知识点——(4)降维

本文介绍了降维算法中的SVD奇异值分解和PCA主成分分析。SVD是许多机器学习算法的基础,不仅可以用于降维,还可应用于推荐系统和自然语言处理。PCA则是一种线性降维方法,目标是找到新特征以最大化方差,保持数据的固有变异性。两者的主要区别在于PCA仅关注旋转和缩放效应,而SVD能分解出旋转、缩放和投影三种效应。
摘要由CSDN通过智能技术生成

一、SVD奇异值分解

1. SVD概述

为什么先介绍SVD算法,因为在后面的PCA算法的实现用到了SVD算法。SVD算法不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域。是很多机器学习算法的基石。

  在线性代数中我们学过矩阵(在这里的矩阵必须是n×nn×n的方阵)的特征分解,矩阵A和特征值、特征向量之间的关系如下

  

将A矩阵做特征分解,特征向量QQ是一组正交向量,具体表达式如下

  

  在这里因为QQ中nn个特征向量为标准正交基,满足QT=Q−1QT=Q−1,也就是说QQ为酉矩阵。

  矩阵的特征值分解的局限性比较大,要求矩阵A必须是方阵(即行和列必须相等的矩阵),那么对于一般的矩阵该如何做分解?

  奇异值分解就可以处理这些一般性的矩阵,假设现在矩阵A是一个m×nm×n的矩阵,我们可以将它的奇异值分解写成下面的形式

  

  在这里UU是m×mm×m的矩阵,ΣΣ是m×nm×n的矩阵(除对角线上的值,其余的值全为0),VV是n×nn×n的矩阵。在这里矩阵UU和VV都是酉矩阵,也就是说满足UTU=IUTU=I,VTV=IVTV=I(其中II为单位矩阵)。对于SVD的定义如下图

  

  矩阵ATAATA是一个n×nn×n的方阵,我们对该方阵做特征值分解,可以得到下面的表达式

  

  我们将这里得到的向量vivi称为右奇异向量。通过该值我们可以得到uiui(左奇异向量,方阵U中的向量)和σiσi(矩阵ΣΣ中对角线上的值,也就是我们的奇异值)

  

  对于奇异值,它跟我们特征分解中的特征值相似,在奇异值矩阵ΣΣ中也是按照从大到小排列的,而且奇异值减小的特别快。在很多情况下,前10%甚至前1%的奇异值的和就占总和的99%以上的比例。也就是说我们可以用最大的K个奇异值和对应的左右奇异向量来近似的描述矩阵,如下图所示

  

  具体表达式如下

  Am×n=Um×mΣm×nVTn×n≈Um×kΣk×kVTk×nAm×n=Um×mΣm×nVn×nT≈Um×kΣk×kVk×nT

  在并行化计算下,奇异值分解是非常快的。但是奇异值分解出的矩阵解释性不强,有点黑盒子的感觉,不过还是在很多领域有着使用。

2. 常见问题

特征值分解和奇异值分解的区别

首先,矩阵可以认为是一种线性变换,而且这种线性变换的作用效果与基的选择有关。

以Ax = b为例,x是m维向量,b是n维向量,m,n可以相等也可以不相等,表示矩阵可以将一个向量线性变换到另一个向量,这样一个线性变换的作用可以包含旋转、缩放和投影三种类型的效应。

奇异值分解正是对线性变换这三种效应的一个析构。

A=\mu\Sigma \sigma^T\mu

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值