gpt4 book ai didi

python - 从 scikit-learn 中的截断 SVD 中获取 U、Sigma、V* 矩阵

转载 作者:IT老高 更新时间:2023-10-28 20:25:34 25 4
gpt4 key购买 nike

我正在使用 scikit-learn 包中的截断 SVD。

在 SVD 的定义中,原始矩阵 A 近似为乘积 AUΣV* 其中 UV 具有正交列,Σ 是非负对角线。

我需要得到 UΣV* 矩阵。

看源码here我发现 V* 在调用 fit_transform 后存储在 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_

最佳答案

通过您提供的链接查看源代码,TruncatedSVD 基本上是 sklearn.utils.extmath.randomized_svd 的包装器;您可以像这样自己手动调用它:

from sklearn.utils.extmath import randomized_svd

U, Sigma, VT = randomized_svd(X,
n_components=15,
n_iter=5,
random_state=None)

关于python - 从 scikit-learn 中的截断 SVD 中获取 U、Sigma、V* 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31523575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com