Я использую усеченный SVD от scikit-learn
.Получить U, Sigma, V * матрицу из усеченного SVD в scikit-learn
В определении СВД, оригинальная матрица является approxmated как продукт ≈ UΣV *, где U и V имеют ортонормированные столбцы, а Σ является неотрицательным диагонали ,
Мне нужно, чтобы получить U, Σ и V * матрицы.
Глядя на исходный код here я узнал, что V * хранится в self.components_
поле после вызова fit_transform
.
Возможно ли получить U и Σ Матрицы?
Мой код:
import sklearn.decomposition as skd
import numpy as np
matrix = np.random.random((20,20))
trsvd = skd.TruncatedSVD(n_components=15)
transformed = trsvd.fit_transform(matrix)
VT = trsvd.components_
Это верно, но для регулярного метода numpy.linalg.svd вы можете» t передайте количество компонентов в качестве параметра, чтобы вы сами извлекли верхний K. Незначительные неудобства. –