我应该如何解释pca组件的输出_

2024-04-23 21:19:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在阅读这篇文章Recovering features names of explained_variance_ratio_ in PCA with sklearn,我想了解以下代码行的输出:

pd.DataFrame(pca.components_, columns=subset.columns)

首先,我认为sklearn的pca组件将是每个特征解释了多少差异(我猜这就是pca的解释,对吧?)。然而,我认为这实际上是错误的,解释的方差是由pca给出的

另外,用上面的脚本构造的数据帧的输出对我来说非常混乱,因为它有几行,而且还有负数

此外,上面构造的数据帧与以下绘图有何关系:

plt.bar(range(pca.explained_variance_), pca.explained_variance_)

我真的对主成分分析和方差感到困惑

如果需要一些示例,我们可以使用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)

1条回答
网友
1楼 · 发布于 2024-04-23 21:19:34

在PCA中,分量(在sklearn,在components_)是原始特征之间的线性组合,增强了它们的方差。因此,它们是组合输入特征的向量,以最大化方差

sklearn中,如所引用的herecomponents_按其解释的方差(explained_variance_)从最高值到最低值的顺序呈现。因此,components_i-th向量具有explained_variance_i-th

关于PCA的有用链接:https://online.stat.psu.edu/stat505/lesson/11

相关问题 更多 >