我有一个问题要关注
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)
我不明白为什么形状会有所不同。请解释一下
答案 0 :(得分:1)
使用SVD,将形状为(m x n)的矩阵 A 分解为
Sigma 在其主对角线上包含所有奇异值。由于形状为(mxn)的矩阵在其主对角线上仅包含 min(m,n)个元素,因此只有 min(m,n)奇异值。