当前位置: 首页 > 面试题库 >

Python scikit学习pca.explained_variance_ratio_截止

柳正志
2023-03-14
问题内容

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

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

  • Python Scikit学习PCA手册在这里

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


问题答案:

是的,您几乎是正确的。该pca.explained_variance_ratio_参数返回每个维度所解释的方差矢量。因此pca.explained_variance_ratio_[i]
给出仅由第i + 1维解释的方差。

你可能想做pca.explained_variance_ratio_.cumsum()。这将返回一个向量x,该向量将返回由前i +
1个维度解释x[i]累积 方差。

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%的方差。



 类似资料:
  • “三个臭皮匠顶个诸葛亮”。集成学习就是利用了这样的思想,通过把多分类器组合在一起的方式,构建出一个强分类器;这些被组合的分类器被称为基分类器。事实上,随机森林就属于集成学习的范畴。通常,集成学习具有更强的泛化能力,大量弱分类器的存在降低了分类错误率,也对于数据的噪声有很好的包容性。

  • 主要内容:机器学习,深度学习,机器学习与深度学习的区别,机器学习和深度学习的应用人工智能是近几年来最流行的趋势之一。机器学习和深度学习构成了人工智能。下面显示的维恩图解释了机器学习和深度学习的关系 - 机器学习 机器学习是让计算机按照设计和编程的算法行事的科学艺术。许多研究人员认为机器学习是实现人类AI的最佳方式。机器学习包括以下类型的模式 - 监督学习模式 无监督学习模式 深度学习 深度学习是机器学习的一个子领域,其中有关算法的灵感来自大脑的结构和功能,称为人工神经网络。

  • 主要内容:数据量,硬件依赖,特色工程在本章中,我们将讨论机器和深度学习概念之间的主要区别。 数据量 机器学习使用不同数量的数据,主要用于少量数据。另一方面,如果数据量迅速增加,深度学习可以有效地工作。下图描绘了机器学习和深度学习在数据量方面的工作 - 硬件依赖 与传统的机器学习算法相反,深度学习算法设计为在很大程度上依赖于高端机器。深度学习算法执行大量矩阵乘法运算,这需要巨大的硬件支持。 特色工程 特征工程是将领域知识放入指定特征的

  • api: 存放uboot提供的接口函数 arch: 存放跟芯片相关的文件 board: 开发板配置文件 common: uboot命令行下支持的命令 disk: 磁盘支持 doc: 文件目录 drivers:设备驱动程序 examples例程 fs: 支持的文件系统,cramfs fat fdos jffs2 registerfs inc

  • CROSS_COMPILE=/opt/4.5.1/bin/arm-linux- CC=$(CROSS_COMPILE)gcc AS=$(CROSS_COMPILE)as LD=$(CROSS_COMPILE)ld CFLAGS=-g -Wall LIBS=-lpthread all:main main:main.o gsm_gprs.o socket.o telosb

  • 从sklearn加载流行数字数据集。数据集模块,并将其分配给可变数字。 分割数字。将数据分为两组,分别命名为X_train和X_test。还有,分割数字。目标分为两组Y_训练和Y_测试。 提示:使用sklearn中的训练测试分割方法。模型选择;将随机_状态设置为30;并进行分层抽样。使用默认参数,从X_序列集和Y_序列标签构建SVM分类器。将模型命名为svm_clf。 在测试数据集上评估模型的准确