【sklearn机器学习】PCA

sklearn中的降维算法

PCA使用的信息量衡量指标,就是样本方差,又称可解释性方差,方差越大,特征所带的信息量越多
在这里插入图片描述

原理推导https://www.cnblogs.com/pinard/p/6239403.html

class sklearn.decomposition.PCA(n_components=None, *, copy=True, whiten=False, svd_solver='auto', tol=0.0, iterated_power='auto', random_state=None)
  1. n_components=这个参数可以帮我们指定希望PCA降维后的特征维度数目。
  • 最常用的做法是直接指定降维到的维度数目,此时n_components是一个大于等于1的整数;
  • 我们也可以指定主成分的方差和所占的最小比例阈值,让PCA类自己去根据样本特征方差来决定降维到的维度数,此时n_components是一个(0,1]之间的数;
  • 我们还可以将参数设置为’mle’(极大似然估计), 此时PCA类会用MLE算法根据特征的方差分布情况自己去选择一定数量的主成分特征来降维;
  • 我们也可以用默认值,即不输入n_components,此时n_components=min(样本数,特征数)。
  1. copy=表示是否在运行算法时,将原始数据复制一份。默认为True,则运行PCA算法后,原始数据的值不会有任何改变。因为是在原始数据的副本上进行运算的。
  2. whiten=白化。所谓白化,就是对降维后的数据的每个特征进行标准化,让方差都为1。对于PCA降维本身来说,一般不需要白化。如果你PCA降维后有后续的数据处理动作,可以考虑白化。默认值是False,即不进行白化。
  3. svd_solver=即指定奇异值分解SVD的方法,由于特征分解是奇异值分解SVD的一个特例,一般的PCA库都是基于SVD实现的。有4个可以选择的值:{‘auto’, ‘full’, ‘arpack’, ‘randomized’}。
  • ‘randomized’ 一般适用于数据量大,数据维度多同时主成分数目比例又较低的PCA降维,它使用了一些加快SVD的随机算法。
  • ‘full’ 则是传统意义上的SVD,使用了scipy库对应的实现。
  • ‘arpack’ 和randomized的适用场景类似,区别是randomized使用的是scikit-learn自己的SVD实现,而arpack直接使用了scipy库的sparse SVD实现。当svd_solve设置为’arpack’时,保留的成分必须少于特征数,即不能保留所有成分。
  • 默认是’auto’,即PCA类会自己去在前面讲到的三种算法里面去权衡,选择一个合适的SVD算法来降维。一般来说,使用默认值就够了。
  1. tol=
  2. iterated_power=
  3. random_state=

注意:当设置 n_components == 'mle’时,需要和参数svd_solver一起使用,且svd_solver需要选择 ‘full’ 参数;即pca = PCA(n_components = ‘mle’,svd_solver=‘full’);同时要保证输入数据的样本数多于特征数才可执行成功。

另外,有两个PCA类的成员值得关注。第一个是explained_variance_,它代表降维后的各主成分的方差值,方差值越大,则说明越是重要的主成分。第二个是explained_variance_ratio_,它代表降维后的各主成分的方差值占总方差值的比例,这个比例越大,则越是重要的主成分。

参数

  • components_:特征空间中的主轴,表示数据中最大方差的方向。
  • explained_variance_:每个选定组件说明的方差量。
  • explained_variance_ratio_:由每个选定组件解释的方差百分比。
  • singular_values_:对应于每个选定组件的奇异值。
  • mean_:根据训练集估算的每特征经验均值。
  • n_components_:估计的组件数。当n_components设置为’mle’或0到1之间的数字(svd_solver ==‘full’)时,将从输入数据中估计该数字。否则等于参数n_components,如果n_components为None,则等于n_features和n_samples的较小值。
  • n_features_:训练数据中的特征数量。
  • n_samples_:训练数据中的样本数。
  • noise_variance_:根据Tipping and Bishop 1999的概率PCA模型估计的噪声协方差。
    在这里插入图片描述
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值