30 分钟学会 SVD 矩阵分解(Python代码)

SVD奇异值分解:数据工程师的降维与特征提取核心工具 奇异值分解(SVD)是线性代数中面向矩阵分析的基础技术,其本质是将任意矩阵分解为正交基与对角能量谱的乘积,实现数据内在低维结构的无损揭示。原理上,它通过寻找行空间与列空间的最优正交方向,使能量高度聚焦于少数主导奇异值,从而天然支持降维、去噪与特征解耦。该技术在推荐系统、NLP文本压缩、图像处理及高维特征共线性诊断中具有不可替代的工程价值——既提供可解释的用户/物品嵌入,又支撑TruncatedSVD等高效近似计算。本文聚焦NumPy实战落地,详解U/Σ/V三矩阵语义、奇异值谱判读与截断秩选择策略。 阅读详情

SVD在机器学习中是非常重要的,利用神奇的矩阵变换可以实现很多功能,比如图像压缩、降维等等。 本篇介绍SVD的原理、应用、以及在Python代码中的使用。

SVD(Singular Value Decomposition)奇异值分解分解是机器学习中最重要的矩阵分解方法。

它能够将一个任意形状的矩阵分解成一个正交矩阵和一个对角矩阵以及另一个正交矩阵的乘积。

SVD分解具有非常深刻的几何含义。矩阵实际上对应着一种线性变换,一个矩阵作用到一个向量上,会得到一个新的向量。任何一个矩阵的操作效果可以分解成一次旋转,一次拉伸和维度改变,以及另外一次旋转三者作用效果的合成。

SVD分解通常用于数据压缩和数据降维。用于数据降维时,既可以对列降维,也可以对行降维,其中对列的降维等价于PCA的降维。

不仅如此,SVD算法还可以用于在声音和图像处理中剥离背景信号,在推荐算法中也经常出现它的身影。

一、SVD矩阵分解简介

SVD分解将任意矩阵分解成一个正交矩阵和一个对角矩阵以及另一个正交矩阵的乘积。

对角矩阵的对角元称为矩阵的奇异值,可以证明,奇异值总是大于等于0的。

当对角矩阵的奇异值按从大到小排列时,SVD分解是唯一的。

假定是维的,则是维的,是维的,是维的。

SVD分解有着非常深刻的几何含义。

矩阵实际上是对应着一种线性变换。一个矩阵作用到一个向量上,会得到一个新的向量。任何一个矩阵的操作效果可以分解成一次旋转,一次拉伸和维度改变,以及另外一次旋转三者作用效果的合成。

注意正交矩阵和作用到向量后是不会改变向量长度的,所以对应着旋转变换。

二、SVD分解的数学推演

可以推出

依然是对角矩阵,又U为正交矩阵。

矩阵的相似性度量的常用方法 当然中间有一个系数就是根号的输入向量的维度,这也就是为什么transformer架构中为什么要除以根号的输入向量的维度的原因,因为除以根号的输入向量的维度之后,Norm之后的向量,神经元的点积相似度就等于余弦相似度了。原因就是因为神经网络的基本计算就是点积相似度计算,而点积相似度的取值范围是没有约束的,这导致神经网络结构很难学习,因为variance太大了。马氏距离的优点是距离与属性的量纲无关,并排除了属性之间的相关性干扰,若各个属性之间独立同分布,则协方差矩阵为单位矩阵。其中:D表示样本间的距离, 阅读详情

相关推荐

相似度矩阵的几种构造方式(附代码)

标题   在谱聚类中,常将数据看做空间上的点,点之间用边连接起来,构造无向权重图G=(V,E)\mathbf{G}=(\mathbf{V},\mathbf{E})G=(V,E),其中V={v1,v2,...,vn}\mathbf{V}=\{v_1, v_2, ..., v_n\}V={v1​,v2​,...,vn​}为定点集合,E为边集合。对任意一个顶点Vi,度di表示与它相连的所有边权重之和,W(i,j)表示Vi和Vj之间的边权重,那么  那么对于n个顶点,可构造n∗nn*nn∗n的度矩阵D=diag(d

Ayla_H的博客 1万+

用积木和彩虹糖讲懂奇异值分解SVD

奇异值分解(SVD)是线性代数中支撑降维、图像压缩、推荐系统与主成分分析的核心矩阵分解方法。其本质并非抽象运算,而是对数据能量分布的结构化解析:通过正交变换(U/Vᵀ)实现视角切换与特征组装,借助对角矩阵(Σ)量化各主成分的能量权重。这种‘分解—截断—重建’机制,天然适配低秩近似需求,在有限计算资源下保障信息保留精度。广泛应用于手机相册压缩、短视频推荐、医学影像去噪等工业场景。本文以生活化类比切入,聚焦SVD可视化、Python实操与工程调参,帮助初学者跨越数学符号障碍,建立可触摸的直觉理解。

技术百科 390

用NumPy和SVD实现图像矩阵压缩的实战指南

图像在计算机中本质是二维数字矩阵,其压缩问题可归结为低秩矩阵近似这一基础线性代数任务。SVD(奇异值分解)凭借普适性与最优逼近性,成为处理任意尺寸图像矩阵的数学基石;它不依赖图像语义,仅通过纯数值分解揭示信息主干——前k个奇异值即承载图像结构‘灵魂’的核心分量。结合NumPy高效实现,SVD可在保留高PSNR/SSIM指标前提下,将文件体积压缩70%以上,广泛适用于医疗影像预处理、在线教育图优化、卫星遥感数据降维等工程场景。

tang_zongyun的博客 155

基于用户画像与SVD的音乐推荐系统优化实践

推荐系统作为信息过滤的核心技术,其本质是通过用户行为数据挖掘潜在偏好。传统协同过滤算法面临数据稀疏性和冷启动问题,而结合用户画像的混合推荐策略能有效提升准确率。通过构建包含静态特征、行为特征、偏好特征和社交特征的多维用户画像体系,配合改进的SVD矩阵分解算法,可以实现更精准的个性化推荐。这种技术方案在音乐、电商等内容推荐场景中表现尤为突出,实测显示能提升78%的推荐准确率和22%的次日留存率。工程实现上需注意动态权重调整、二级缓存优化等关键点,其中Redis缓存和Memcached的混合使用能显著改善系统响

weixin_34348805的博客 467

SciPy线性代数实战:向量数组形状、dtype与分解选型避坑指南

线性代数是数据工程的底层支柱,其核心在于向量与数组的数值计算——而非纯数学推导。理解shape维度约定(如solve要求1D b而非2D列向量)、dtype精度影响(float64为scipy.linalg安全基线)及内存布局(stride与reshape语义),直接决定代码是否报错、稳定与高效。SciPy的linalg模块以LAPACK/BLAS工业级实现为基础,提供比NumPy更鲁棒的求解器、结构化矩阵专用算法和细粒度控制(如assume_a、overwrite_a),适用于大规模协方差求逆、稀疏系统求

weixin_30328063的博客 448

数据科学中矩阵的常见迷思:实对称性不是默认假设

矩阵是数据科学建模的核心数学对象,其结构特性直接决定算法选择与结果可靠性。理解矩阵是否为实数、是否对称、是否为方阵或复数,是正确应用特征分解、SVD、PageRank或复数优化的前提。实对称矩阵虽具备正交特征向量、实特征值和稳定谱分解等优良性质,但仅在协方差矩阵、无向图拉普拉斯、核矩阵等严格满足对称性公理与物理守恒律的场景中才天然成立;而用户行为转移矩阵、时序雅可比矩阵、MRI傅里叶采样矩阵等真实数据载体,往往具有方向性、非方性或复数性——强行套用实对称假设将导致模型失真、解释失效与线上服务异常。本文聚焦矩

weixin_30271335的博客 637

奇异值及奇异值分解(SVD)详解及Python实现

奇异值(Singular Value)是线性代数中的重要概念,用于描述矩阵的性质和特征。奇异值分解(Singular Value Decomposition,简称SVD)是一种矩阵分解方法,将矩阵分解为三个矩阵的乘积,其中包括一个正交矩阵、一个对角矩阵和另一个正交矩阵的转置。其中,A是一个m×n的实数矩阵,U是一个m×m的正交矩阵,Σ是一个m×n的对角矩阵,V是一个n×n的正交矩阵,^T表示矩阵的转置。函数对矩阵A进行奇异值分解,返回结果包括U矩阵、奇异值数组s和V矩阵的转置VT。

AlianBlank的博客 907

DDR5内存调优实战:手把手教你搞定Write Leveling Training Mode(附时序图解析)

本文深入解析DDR5内存调优中的Write Leveling Training Mode技术,详细介绍了其核心原理、硬件准备、实战步骤及常见问题解决方案。通过JESD79-5标准定义的反馈机制,帮助硬件工程师精确对齐DQS与CK信号,提升系统稳定性和数据可靠性。附有时序图解析和代码示例,适合DDR5内存系统设计与调试参考。

weixin_29256771的博客 549

32位MIPS流水线CPU设计

32位MIPS流水线CPU设计(vivado)

m0_51320209的博客 3199

【Codex Sandbox 与审批机制:小白也能看懂的实用教程】

这篇教程介绍了Codex工具中的沙盒(Sandbox)和审批(Approvals)机制,帮助用户安全高效地使用Codex协作。沙盒限制Codex访问范围,审批机制则控制敏感操作权限。文章详细讲解了五种常见模式:最安全的安全只读浏览、只读非交互、仓库内编辑、Auto预设和不推荐的YOLO模式。还提供了新手使用路径建议、配置示例和实战场景范式,包括如何测试沙盒行为、不同系统下的实现方式以及常见问题解答。最后附上速查清单,帮助用户快速选择合适的权限组合。

zsr154278963的博客 6702

车载 ECU 中的 Safety Linux 详解

车载 ECU 中的 Safety Linux 详解

天赐好车的博客 306

使用 MATLAB/Simulink + Simscape Electrical 构建一个他励直流电机的启动与制动过程仿真模型

直流电机在工业控制、电动车辆、自动化设备中广泛应用。其中,他励直流电机(Separately Excited DC Motor)因其励磁绕组与电枢绕组分别供电,具有良好的调速性能和启动特性,常用于需要平稳启动和精确控制的场合。在实际应用中,电机的启动过程和制动过程对电网、机械系统以及电机本身都具有重要影响。因此,仿真分析他励直流电机的启动与制动特性,是电机控制设计的重要环节。本文将详细介绍如何使用构建一个他励直流电机的启动与制动过程仿真模型,并通过仿真分析其动态响应。本文详细介绍了如何使用构建一个。

amy_mhd的博客 231

rknn-toolkit推理yolov5-face.rknn模型--python代码

import os import urllib import traceback import time import sys import numpy as np import cv2 from rknn.api import RKNN ONNX_MODEL = 'yolov5s.onnx' RKNN_MODEL = 'yolov5s.rknn' IMG_PATH = './bus.jpg' DATASET = './dataset.txt' QUANTIZE_ON = True BOX_THR.

C/C++、嵌入式开发、深度学习算法、模型部署与推理优化 3079

Docker(八):Docker Compose(容器编排) 管理多容器应用—实战案例演示

🟢 Docker(八):Docker Compose(容器编排) 管理多容器应用—实战案例演示

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 6万+

从入门到精通!Arduino 全栈开发深度指南

本文围绕 Arduino 开发撰写全攻略,从基础入门到高级应用层层递进。开篇介绍 Arduino 概念、优势及硬件家族,引导读者完成开发环境搭建与首个 LED 闪烁项目;深入讲解编程语法、I/O 控制及通信协议;详细阐述传感器、模块应用与调试优化技巧;最后以自定义库开发、低功耗设计等高级内容收尾,并给出综合项目案例与产品化思路。无论新手入门,还是开发者进阶,均可从中系统学习 Arduino 知识,掌握从理论到实践的全流程开发技能。

邓邓子的博客 2754

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 一日一技:极其简单,用Python写前端
下一篇: Python 超轻量级日志解决方案
Python_xiaowu
博客等级 码龄5年 3096粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值