我正在尝试使用sklearn从此video复制svd过程。
A = np.matrix([[5,5],[-1,7]])
A_padded = np.pad(A, (0,1), 'constant', constant_values=(0, 0))
svd = TruncatedSVD(n_components=2, n_iter=7, random_state=42)
svd.fit(A_padded)
svd.singular_values_
给出了Sigma。
svd.components_
给出了VT
如何获得U矩阵?
答案 0 :(得分:1)
看看源代码,您会发现TruncatedSVD
基于randomized_svd
from sklearn.utils.extmath import randomized_svd
randomized_svd(A, n_components=2,
n_iter=5,
random_state=0)
(array([[ 0.70710678, 0.70710678],
[ 0.70710678, -0.70710678]]),
array([8.94427191, 4.47213595]),
array([[ 0.31622777, 0.9486833 ],
[ 0.9486833 , -0.31622777]]))