особые значения в расчете SVD с использованием NumPy - PullRequest
0 голосов
/ 30 октября 2019

У меня есть вопрос для следующих

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)

Я непонять, почему есть разница в форме. Пожалуйста, expalin

1 Ответ

1 голос
/ 30 октября 2019

Используя SVD , матрица A формы (мксн) разлагается на

  • унитарную матрицу U формы (мкм)
  • прямоугольная диагональная матрица Сигма формы (мксн)
  • aунитарная матрица V формы (nxn)

Sigma содержит все единственные значения на своей главной диагонали. Поскольку матрица формы (mxn) содержит только min (m, n) элементов на ее главной диагонали, существует только min (m, n) единственного числазначения.

...