sklearn中提供了较为丰富的PCA模型来解决数据的降维问题,其包括:
(1)PCA:最原始的PCA算法;
(2)TruncatedSVD:原始数据不做中心化处理的PCA算法,可用于文本数据(TF-IDF处理后)的隐藏语义分析(LSA);
(3)SparsePCA:添加L1正则化处理后的PCA算法,用最小角回归算法求解,可在一定程度上解决数据噪声的问题,进一步降低分解后的数据维度;
(4)MiniBatchSparsePCA:添加L1正则化处理后PCA算法,基于小批量数据的PCA算法。
(5)IncrementalPCA:增量学习的PCA算法,通过partial_fit解决数据量过大情况下内存限制的问题。
(6)KernelPCA:样本协方差矩阵中的元素均为样本内积,因此可利用核技巧,将其它应用到非线性空间上。
本文仅详细介绍最原始的PCA算法。
1. 模型的主要参数
| 模型参数 | Parameter含义 | 备注 |
| n_components | 主成分数 | 用于空值分解后的目标维度,其可选值包括:1.整数,指定具体的值;2. 百分比,分解后的维度包含的信息量(方差)必须大于原始信息量*百分比;3. 'mle'采用极大似然估计法,预估目标维度;4.None, 默认为数据特征数目和数据行数中最小的那个值,注意当solver为'arpack',还需在上述值基础上减1; |
| whiten | 白化 | 布尔值,默认False。白化即通过将各特征维度的数据进行归一化处理,使其各方差值相当。白化会使得各特征数据的方差信息丢失,但可能会提高下游任务的准确率。 |
| svd_solver | 求解器 | 求解器类型包括:1.'auto',在数据量大于500*500同时分解后的目标 |
PCA算法详解

最低0.47元/天 解锁文章
6212

被折叠的 条评论
为什么被折叠?



