使用 numpy 计算 svd 中的奇异值
singular values in svd calculation using numpy
我有一个问题要关注
A = array([
[1,2,3,4,5,6,7,8,9,10],
[11,12,13,14,15,16,17,18,19,20],
[21,22,23,24,25,26,27,28,29,30]])
print(A)
# Singular-value decomposition
U, s, VT = svd(A)
上面的“s”应该是形状(10,),因为我们有 10 个特征,但显示的不是(3,)。示例输出如下所示,我很困惑。请解释一下,为什么我们去 (3,)
(3, 10)
U shape (3, 3)
s shape (3,)
VT shape (10, 10)
让我们考虑另一个例子
A = array([[1, 2], [3, 4], [5, 6]])
print(A.shape)
# Singular-value decomposition
U, s, VT = svd(A)
Here “s” shape is shown as (2,)
这里输出如下图
(3, 2)
U shape (3, 3)
s shape (2,)
VT shape (2, 2)
我不明白为什么形状会有所不同。请解释
使用SVD,形状为(m x n)的矩阵A分解为
- 形状为 (m x m)
的酉矩阵 U
- 形状为 (m x n)
的矩形对角矩阵 Sigma
- 一个酉矩阵 V,形状为 (n x n)
Sigma 包含其主对角线上的所有奇异值。由于形状为 (m x n) 的矩阵在其主对角线上仅包含 min(m, n) 个元素,因此只有 min(m, n) 奇异值。
我有一个问题要关注
A = array([
[1,2,3,4,5,6,7,8,9,10],
[11,12,13,14,15,16,17,18,19,20],
[21,22,23,24,25,26,27,28,29,30]])
print(A)
# Singular-value decomposition
U, s, VT = svd(A)
上面的“s”应该是形状(10,),因为我们有 10 个特征,但显示的不是(3,)。示例输出如下所示,我很困惑。请解释一下,为什么我们去 (3,)
(3, 10)
U shape (3, 3)
s shape (3,)
VT shape (10, 10)
让我们考虑另一个例子
A = array([[1, 2], [3, 4], [5, 6]])
print(A.shape)
# Singular-value decomposition
U, s, VT = svd(A)
Here “s” shape is shown as (2,)
这里输出如下图
(3, 2)
U shape (3, 3)
s shape (2,)
VT shape (2, 2)
我不明白为什么形状会有所不同。请解释
使用SVD,形状为(m x n)的矩阵A分解为
- 形状为 (m x m) 的酉矩阵 U
- 形状为 (m x n) 的矩形对角矩阵 Sigma
- 一个酉矩阵 V,形状为 (n x n)
Sigma 包含其主对角线上的所有奇异值。由于形状为 (m x n) 的矩阵在其主对角线上仅包含 min(m, n) 个元素,因此只有 min(m, n) 奇异值。