如何解决我应该如何解释 pca.components_ 的输出
我正在阅读这篇文章 Recovering features names of explained_variance_ratio_ in PCA with sklearn,我想了解以下代码行的输出:
pd.DataFrame(pca.components_,columns=subset.columns)
首先,我认为来自 sklearn 的 pca 组件将是每个特征解释了多少方差(我猜这是对 PCA 的解释,对吧?)。然而,我认为这实际上是错误的,解释方差是由 pca.explained_variance 给出的。
另外,用上面脚本构建的数据框的输出让我很困惑,因为它有几行,而且还有负数。
此外,上面构建的数据框与下图有什么关系:
plt.bar(range(pca.explained_variance_),pca.explained_variance_)
我对 PCA 组件和方差真的很困惑。
如果需要一些示例,我们可能会使用 iris 数据集构建 PCA。这是我到目前为止所做的:
subset = iris.iloc[:,1:5]
scaler = StandardScaler()
pca = PCA()
pipe = make_pipeline(scaler,pca)
pipe.fit(subset)
# Plot the explained variances
features = range(pca.n_components_)
_ = plt.bar(features,pca.explained_variance_)
# Dump components relations with features:
pd.DataFrame(pca.components_,columns=subset.columns)
解决方法
在 PCA 中,组件(在 sklearn
中,components_
)是原始特征之间的线性组合,增强了它们的方差。因此,它们是组合输入特征的向量,以最大化方差。
在 sklearn
中,如 here 所引用的,components_
按其解释方差 (explained_variance_
) 的顺序显示,从最高值到最低值。因此,components_
的 i-th 向量的 i-th 值为 explained_variance_
。
有关 PCA 的有用链接:https://online.stat.psu.edu/stat505/lesson/11
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。