我一直在阅读 sklearn 中的 PCA,特别是特征和组件之间的关系。我对确定几个主要组件的功能重要性特别感兴趣。然而,我发现一些帖子说的不同。
例如,在这篇文章的 3 个答案中讨论了特征向量和载荷。特别是,提到,
pca.components_.T * np.sqrt(pca.explained_variance_)
显示了特征的组件加载。为什么这里用sqrt
? 为什么是这个产品?
但是,在这个答案中,表明
abs(pca.components_)
为您提供了每个组件中的特征重要性。这似乎与上面指出的相矛盾,是吗? 这篇博文还表明pca.components_
是各个功能的组件加载。
此外,我想了解 this 如何回答这个问题:
"I think what you call the "loadings" is the result of the projection for each sample into the vector space spanned by the components. Those can be obtained by calling pca.transform(X_train) after calling pca.fit(X_train)."
但这是不正确的:载荷与主成分上每个特征的 coefficient 有关,而不是样本。同意?
非常感谢这里的一些澄清。
我同意。我注意到使用 pca.components_ * np.sqrt(pca.explained_variance_)
的文章
像这篇似乎引用了 PCA 负载背后的理论来解释他们的推理。另一方面,那些使用
abs
或标准化 abs
的 pca.components_
的人似乎专注于特征重要性像这样。
我认为这个博客在其标题为“载荷、相关系数和特征向量之间的差异”的部分中对其进行了最好的解释。
我希望 SciKit 在他们的指南中修复这个问题,并尽快添加一个计算它的方法。