对于sci-kit learn
中的RandomizedPCA
,我可以看到explained_variance_ratio_
属性中每个分量所解释的方差。我能从TruncatedSVD
那里得到类似的东西吗?我想知道是否值得让TruncatedSVD
返回更多组件。
注意:我甚至不知道"解释方差"的概念是否适用于TruncatedSVD
技术。
我需要检查,但即使是RandomizedPCA
的explained_variance_ratio_
也可能损坏。我认为在截断SVD时,没有一种原则性的方法来计算它。
编辑:我刚刚通过从数据中计算真实解释的方差率来检查这个笔记本,事实上RandomizedPCA
是在撒谎。
最后,如果你想计算真正解释的方差,你可以根据数据来计算:
import numpy as np
from sklearn.decomposition import TruncatedSVD
model = TruncatedSVD(n_components=10).fit(X)
X_proj = model.transform(X)
explained_variances = np.var(X_proj, axis=0) / np.var(X, axis=0).sum()
第二次编辑:我在此处报告了此问题:https://github.com/scikit-learn/scikit-learn/issues/2663