奇异值分解SVD

奇异值分解(SVD)是线性代数中的关键矩阵分解技术,与特征值分解相关,用于矩阵乘积形式的数据拆分和降维。特征值分解适用于方阵,而SVD则可处理任意矩阵。SVD将任意矩阵A分解为U、Σ和VT,其中U和VT是正交基,Σ是对角线上奇异值的矩阵。在数据处理中,大奇异值对应重要信息,小奇异值可能被忽略,这在PCA降维中有重要作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       奇异值分解(Singular Value Decomposition)是线性代数中一种重要的矩阵分解,和 特征值分解 有一定的关联,作用都在于将矩阵分解成 多个矩阵的乘积,从而方便进行数据的拆分,实现数据的投影或者降维。

       从数学的角度来看,特征值分解奇异值分解 都是给一个矩阵(线性变换)找一组特殊的基

       我们 先从特征值分解层面来引入问题:

● 特征值分解

       特征值分解 是基于方阵来讲的,方阵 A 对应特征向量 v,v对应的 特征值 λ,描述为:

        

       则 方阵A的 特征值分解形式为:

        

       其中,Q对应方阵A 的特征向量组成的矩阵,Σ 是对角矩阵,对角线元素即为 特征值(从大到小排列),实际上我们认为 Q 就是这样一组基,原方阵A在这组基上的投影,而对角阵 就代表了在这组基上的影响指数,大的特征值 影响较大,小的特征值可以忽略,这就为实现PCA降维方法提供了基础。

● 奇异值分解

       特征值分解 有一个限制条件,那就是 矩阵A 必须为方阵,那么针对待分解矩阵 不是方阵的情况,该如何处理呢?

       这就是 本节要讲的任意矩阵分解的方法,针对 任意矩阵 A(m*n),奇异值分解:

        

       其中,U是一个m*m的方阵(也称左奇异向量),VT是一个n*n的矩阵(也称右奇异向量),Σ 是一个m*n的矩阵(除了对角线的元素都是0,对角线上的元素称为奇异值)。

       从数学上看,表示我们找到了U和VT这样两组基,并且这两组基正交。

       

参考代码(来自于Numerical Recipes in C):

/*******************************************************************************
Singular value decomposition program, svdcmp, from "Numerical Recipes in C"
(Cam
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值