PCA是用来分解多元数据集的,该数据集由一系列正交成分组成,表明了方差的最大值。
在PCA中,数据从原来的坐标系转换到了新的坐标系,新坐标系的选择是由数据本身决定的。第一个新坐标轴选择的是原始数据中方差最大的方向,第二个新坐标轴的选择和第一个坐标轴正交且具有最大方差的方向。该过程一直重复,重复次数为原始数据中特征的数目。会发现,大部分方差都包含在最前面的几个新坐标轴中。忽略余下的坐标轴即对数据进行降维处理。
可选参数whiten=True使其能够将数据映射到奇异空间上,同时将每个成分缩放到单位方差。
PCA类 It only works for dense arrays and is not scalable to large dimensional data.
计算复杂度为O(n**3),假设是n*n的矩阵
参数:
n_components:int None or string
保留的特征个数
当赋值为string,比如n_components=’mle’,将自动选取特征个数n,使得满足所要求的方差百分比。
copy:bool
默认为True,当为False时,原始数据将发生改变,不能用fit(X).transform(X),只能用fit_transform(X)(但是测试了一下还是一样啊)
whiten:bool,optional,默认为False
意义:白化,使得每个特征具有相同的方差。
RamdomizedPCA的适用范围更大
inverse_transform():得到original space,原始空间
字典学习
_sparse_encode():