[数学] 奇异值分解SVD的理解与应用
2024-10-18 20:29:09
看一个预测的代码,在预处理数据的时候使用了svd。了解了一下svd相关资料,比较喜欢第一篇文章的解释,不过第二篇也很简单。
https://blog.csdn.net/ab_use/article/details/50433635
https://cosx.org/2014/02/svd-and-image-compression
在论述UDV的维度的时候,两篇文章由不一致的地方。
一种说法是U是一个mxm的矩阵,D是mxn矩阵,V是nxn矩阵。
另一种说法是U是一个mxn矩阵,D是nxn矩阵,V是nxn矩阵。
两种说法其实都对,第二版是第一版的简化。因为D的特性,使得D右下角的行(或列)为0(第一篇文章有显示),所以实际上有效的维度只有min(m, n), 因为有假设m > n, 所以这里取n。同时,U左乘到D,因此 > n 的部分为0。由此可以将UD从mxm %*% mxn 简化成mxn %*% nxn的形式。
SVD的有效的一个重要特征在于,分解得到的D矩阵,其对角线上的值是降序排列的。至于为什么是降序的,这里应该有证明 A singularly valuable decomposition: the SVD of a matrix (我没看)
将D矩阵尾部贡献量较小的特征值丢弃之后,即可得到对源矩阵的一个近似拟合,这个拟合包含了原矩阵绝大部分的信息。因此SVD可以应用于数据压缩及过滤噪声等。
s== 分割线 等待整理笔记 ==
最新文章
- css常用hack
- java统计字符串单词的个数
- luke使用
- native2ascii.exe 字符转码与反转码
- Winform打砖块游戏制作step by step第6节---双缓冲应用
- C#中var和dynamic
- 【BZOJ1060】[ZJOI2007]时态同步 树形DP
- jQuery效果之隐藏与显示、淡入淡出、滑动、回调
- 深入研究java.lang.ThreadLocal类(转)
- HDU 1087 Super Jumping! Jumping! Jumping!(最长上升子序列,dp)
- 怎么找到MyEclipse->;add struts capabilities
- Oracle基础学习5-- Oracle权限之”角色”
- JavaScript的一些小用法
- poj3356 AGTC
- Socket简介 (转)
- Unity NGUI UIPanel下对粒子的剪裁
- 多参数请求 C# webApi
- Samba服务部署
- 浅析Unity中的Enlighten与混合光照
- string转QBytearray
热门文章
- vue 的router的简易运用
- Android Studio 配置虚拟设备的镜像文件的存放路径
- 出现xml错误的时候都是配置文件的名字没有改造成的
- 2017-2018-2 20165328 实验三《敏捷开发与XP实践》实验报告
- 有道词典Linux版下载安装
- zookeeper都有哪些使用场景
- ipmitool获取服务器信息
- springboot logback 相关使用
- Adjoint operators $T_K$ and $T_{K^{*}}$ in BEM
- 经典的XSS案例