我正在使用scikit-learn
包中的截断SVD。
在SVD定义中,原始矩阵A可以近似表示为一个乘积A ≈ UΣV*,其中U和V具有正交列,而Σ是非负对角线矩阵。
我需要获取U、Σ和V*矩阵。
查看这里的源代码后,我发现在调用fit_transform
后,V*存储在self.components_
字段中。
是否可能获得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_