gpt4 book ai didi

python - scikit-learn TruncatedSVD 的解释方差比不按降序排列

转载 作者:太空狗 更新时间:2023-10-29 19:30:01 25 4
gpt4 key购买 nike

<分区>

与 sklearn 的 PCA 不同,TruncatedSVD 的解释方差比不是按降序排列的。我查看了源代码,似乎他们使用不同的方式计算解释的方差比:

TruncatedSVD :

U, Sigma, VT = randomized_svd(X, self.n_components,
n_iter=self.n_iter,
random_state=random_state)
X_transformed = np.dot(U, np.diag(Sigma))
self.explained_variance_ = exp_var = np.var(X_transformed, axis=0)
if sp.issparse(X):
_, full_var = mean_variance_axis(X, axis=0)
full_var = full_var.sum()
else:
full_var = np.var(X, axis=0).sum()
self.explained_variance_ratio_ = exp_var / full_var

PCA :

U, S, V = linalg.svd(X, full_matrices=False)
explained_variance_ = (S ** 2) / n_samples
explained_variance_ratio_ = (explained_variance_ /
explained_variance_.sum())

PCA 使用 sigma 直接计算 explained_variance,由于 sigma 是降序的,所以 explained_variance 也是降序的。另一方面,TruncatedSVD 使用变换矩阵列的方差来计算 explained_variance,因此方差不一定按降序排列。

这是否意味着我需要先对 TruncatedSVD 中的 explained_variance_ratio 进行排序才能找到前 k 个主成分?

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