微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我应该如何解释 pca.components_ 的输出

如何解决我应该如何解释 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 举报,一经查实,本站将立刻删除。