奇异值分解(SVD):原理、应用与优化
1. 奇异值分解概述
奇异值分解(SVD)是计算时代最重要的矩阵分解方法之一,为众多数据处理方法奠定了基础。在处理复杂系统产生的高维数据时,SVD 具有显著优势。许多复杂系统生成的数据自然地以大型矩阵或数组形式存在,例如实验或模拟的时间序列数据、图像的像素值等。这些数据往往具有低秩特性,即存在少数主导模式可以解释高维数据。
SVD 是一种适用于任何复值矩阵 (X \in C^{n×m}) 的唯一矩阵分解方法:
[X = U\Sigma V^ ]
其中 (U \in C^{n×n}) 和 (V \in C^{m×m}) 是具有正交列的酉矩阵,(\Sigma \in R^{n×m}) 是对角线上为非负实数、其余元素为零的矩阵。( ) 表示复共轭转置。当 (n \geq m) 时,可使用经济 SVD 精确表示 (X)。
在不同编程语言中计算 SVD 的方法如下:
- Matlab :
X = randn(5,3);
[U,S,V] = svd(X);
[Uhat,Shat,V] = svd(X,'econ');
- Python :
import numpy as np
X = np.random.rand(5, 3)
U, S, V = np.linalg.svd(X,full_matrices=
订阅专栏 解锁全文
23

被折叠的 条评论
为什么被折叠?



