gpt4 book ai didi

Python scikit 学习 pca.explained_variance_ratio_cutoff

转载 作者:IT老高 更新时间:2023-10-28 20:35:51 25 4
gpt4 key购买 nike

在选择主成分的数量 (k) 时,我们选择 k 作为最小值,以便保留例如 99% 的方差。

但是,在 Python Scikit 学习中,我不能 100% 确定 pca.explained_variance_ratio_ = 0.99 是否等于“保留了 99% 的方差”?有人能解惑吗?谢谢。

  • Python Scikit 学习 PCA 手册在这里

http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html#sklearn.decomposition.PCA

最佳答案

是的,你几乎是对的。 pca.explained_variance_ratio_ 参数返回每个维度解释的方差向量。因此 pca.explained_variance_ratio_[i] 给出了仅由 i+1 维解释的方差。

您可能想要执行 pca.explained_variance_ratio_.cumsum()。这将返回一个向量 x 使得 x[i] 返回由前 i+1 个维度解释的 累积 方差。

import numpy as np
from sklearn.decomposition import PCA

np.random.seed(0)
my_matrix = np.random.randn(20, 5)

my_model = PCA(n_components=5)
my_model.fit_transform(my_matrix)

print my_model.explained_variance_
print my_model.explained_variance_ratio_
print my_model.explained_variance_ratio_.cumsum()

[ 1.50756565  1.29374452  0.97042041  0.61712667  0.31529082]
[ 0.32047581 0.27502207 0.20629036 0.13118776 0.067024 ]
[ 0.32047581 0.59549787 0.80178824 0.932976 1. ]

所以在我的随机玩具数据中,如果我选择 k=4,我会保留 93.3% 的方差。

关于Python scikit 学习 pca.explained_variance_ratio_cutoff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32857029/

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