首页 > 其他分享 >《机器学习》 基于SVD的矩阵分解 推导、案例实现

《机器学习》 基于SVD的矩阵分解 推导、案例实现

时间:2024-09-07 15:49:54浏览次数:7  
标签:推导 img SVD pic 矩阵 奇异 图像

目录

一、SVD奇异值分解

1、什么是SVD

2、SVD的应用

        1)数据降维

        2)推荐算法

        3)自然语言处理

3、核心

        1)什么是酉矩阵

        2)什么是对角矩阵

4、分解过程

二、推导

1、如何求解这三个矩阵

        1)已知: 

        2)根据酉矩阵的特点即可得出:

        3)隐含条件:

        4)计算:

        5)结论

2、实例

        1)求U与V对应的协方差矩阵

        2)求各自协方差矩阵对应的特征值和特征向量

                • 求A^T A对应的特征值和特征向量

                • 求 A A^T 对应的特征值和特征向量

三、代码实现

1、导包

2、代码演示

运行结果为:

代码调试状态:


一、SVD奇异值分解

1、什么是SVD

        SVD就是奇异值分解。在机器学习中,SVD是一种常用的矩阵分解方法,用于将一个矩阵分解为三个矩阵的乘积。具体来说,对于一个m×n的实数矩阵A,SVD将其分解为以下形式:

                A = UΣV^T

        其中,U是一个m×m的正交矩阵Σ是一个m×n的对角矩阵V^T是一个n×n的正交矩阵。Σ的对角线上的元素称为奇异值,表示原始矩阵A在对应的奇异向量方向上的重要程度

2、SVD的应用

        1)数据降维

                可以通过保留最重要的奇异值和对应的奇异向量,将原始数据降维到一个较低维度的表示,以减少数据的冗余和计算复杂度。

        2)推荐算法

                SVD可以分解用户-项目评分矩阵,从而得到用户和项目在一个低维的潜在空间中的表示,进而进行推荐。

        3)自然语言处理

                SVD可以用于词向量的降维和表示,从而实现语义分析任务,如文本分类、情感分析、语义相似度计算,也可以用于对大规模文本数据进行降维和压缩,从而提高文本处理和存储的效率。

3、核心

        对于任意矩阵A,我们总能够将其分解位三个矩阵

标签:推导,img,SVD,pic,矩阵,奇异,图像
From: https://blog.csdn.net/qq_64603703/article/details/141967910

相关文章

  • 机器学习:对数据进行降维(PCA和SVD)
    目录前言一、PCA1.PCA是什么?2.PCA的实现使用步骤3.PCA参数解释4.代码实现5.PCA的优缺点二、SVD1.SVD是什么?2.SVD的实现步骤3.代码实现总结前言        数据降维是将高维数据转换为较低维度的过程,同时尽量保留数据中的关键信息。这有助于减少计算复杂性......
  • 使用SVD(奇异值分解)进行降维的奇妙之旅
    在数据分析和机器学习的广阔天地中,降维技术占据着举足轻重的地位。当我们面对高维数据时,不仅计算成本高昂,而且容易遭遇“维度灾难”,即随着维度的增加,数据的稀疏性和距离度量失效等问题愈发严重。为了克服这些挑战,各种降维技术应运而生,其中奇异值分解(SingularValueDecompositi......
  • 2024年实体门店和企业怎么做短视频矩阵获客?为什么要做短视频矩阵?一文告诉你短视频矩阵
    短视频矩阵获客是一种基于多个短视频账号,通过不同职能划分和策略组合,实现更高效、更精准的客户获取方式。一、短视频矩阵是什么?短视频矩阵是指由多个短视频平台通过某种方式连接在一起,形成一个统一的短视频发布、分享和观看的网络体系。每个平台可能具有自己独立的特点和用户......
  • python 实现matrix exponentiation矩阵求幂算法
    matrixexponentiation矩阵求幂算法介绍矩阵求幂算法(MatrixExponentiation)是一种通过利用矩阵乘法的结合律来高效地计算矩阵的幂的算法。这种方法特别适用于在算法竞赛和计算机科学领域中解决需要快速计算矩阵幂的问题,如求解线性递推关系、图论中的路径计数等。基本思想......
  • 是坐标转换,也是旋转——矩阵变换
    坐标转换一个向量可以被表示为\(v=xi+yj+zk\),其中\(i\),\(j\),\(k\)为坐标系的基向量:\(i=\begin{bmatrix}1\\0\\0\end{bmatrix}\),\(j=\begin{bmatrix}0\\1\\0\end{bmatrix}\),\(k=\begin{bmatrix}0\\0\\1\end{bmatrix}\)基向量可写成矩阵的方式:\(\begin......
  • python——推导式
    推导式(Comprehensions)是Python中用于创建集合、列表、字典和集合的简洁语法。它们通过简化代码使其更具可读性,并且通常比使用传统循环创建对象的方式更高效。推导式有助于减少代码行数并提高代码的清晰度。1.推导式的基本概念推导式的基本思想是通过提供一个表达式和一个......
  • 分享4款安全与认证IC:DS28E30P、MAXQ1065GTC、RNG90-MAVDA-T、RNG90-SSVDA-T(介绍)
    1、DS28E30P安全认证器提供了一种基于FIPS-186ECDSA标准的完整认证解决方案,不仅高度安全,而且易于部署。该安全认证器采用ECDSA挑战和响应认证方式,同时利用安全EEPROM来存储密钥和用户数据。该器件提供了一套核心加密工具,这些加密工具由多种集成块衍生而来,包括一个非对称硬件引擎、......
  • 获取方形矩阵两串对角线数字之和的差值
    1/**2*获取方形矩阵两串对角线数字之和的差值3*4*1235*4566*7897*8*1+5+9=15;9*3+5+7=15;10*15-15=0;11*@paramarr12*@return13*/14publicstaticInteg......
  • 【稀疏矩阵】使用torch.sparse模块
    @目录稀疏矩阵的格式coocsrcscConstructionofSparseCOOtensorsConstructionofCSRtensorsLinearAlgebraoperations(稀疏与稠密之间混合运算)Tensormethodsandsparse(与稀疏有关的tensor成员函数)coo张量可用的tensor成员函数(经实测,csr也有一些可以用,比如dim())Torchfunctio......
  • 机械臂运动学-旋转矩阵
    Rotationmatrix的三种用法:1.描述一个坐标系(相对于另一个坐标系)的姿态2.将某一点由某一个坐标系转换到另一个和此坐标系有相对运动的坐标系来表示3.将某一点在同一个坐标系中进行转动 以对三个主轴旋转的矩阵为基础:固定轴旋转:转动顺序不一样,旋转矩阵也不一样:......