gpt4 book ai didi

python - PCA:获取前 20 个最重要的维度

转载 作者:行者123 更新时间:2023-11-30 22:34:06 26 4
gpt4 key购买 nike

我正在做一些机器学习,并尝试使用 PCA 找到重要的维度。这是我到目前为止所做的:

from sklearn.decomposition import PCA
pca = PCA(n_components=0.98)
X_reduced = pca.fit_transform(df_normalized)
X_reduced.shape
(2208, 1961)

因此,运行 PCA 后,我得到了由 1,961 列组成的 2,208 行,这解释了数据集中 98% 的方差。然而,我担心解释力最小的维度实际上可能会损害我的预测尝试(我的模型可能只是发现数据中的虚假相关性)。

SciKit-Learn 是否按重要性对列进行排序?如果是这样,我可以这样做:

X_final = X_reduced[:, :20],正确吗?

感谢您的帮助!

最佳答案

From the documentation它表示输出按解释方差排序。所以是的,您应该能够按照您的建议进行操作,只需获取输出的前 N ​​维即可。您还可以打印输出变量 explained_variance_(甚至 explained_variance_ratio_)以及 components_ 输出来仔细检查顺序。

文档中的示例显示了如何访问解释的差异金额:

import numpy as np
from sklearn.decomposition import PCA
X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
pca = PCA(n_components=2)
pca.fit(X)


print(pca.explained_variance_ratio_)

因此,在您的情况下,您可以执行 print(X_reduced.components_)print(X_reduced.explained_variance_ratio_) 来获得两者。然后,在找到 N 解释 y% 方差后,只需从 X_reduced.components_ 中取出您想要的前 N ​​个即可。

注意!在您建议的解决方案中,您混合了尺寸。 X_reduced.components_ 的形状为 [n_components, n_features] 因此,例如,如果您想要前 20 个组件,则应使用 X_reduced.components[:20, : ]我相信。

关于python - PCA:获取前 20 个最重要的维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44955534/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com