Я использую усеченный SVD из scikit-learn
.
В определении SVD исходная матрица A аппроксимируется как произведение A ≈ UΣV *, где U и V имеют ортонормированные столбцы, а Σ - неотрицательная диагональ.
Мне нужно получить матрицы U, Σ и V *.
Глядя на исходный код здесь я узнал, что 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_