python实现主成分分析法降维(PCA)

风格不统一 提交于 2020-02-06 02:53:21

一、基础主成分分析(PCA)

  • 基本代码
import sklearn.decomposition
clf_pca = sklearn.decomposition.PCA(n_components=None, copy=True, whiten=False, svd_solver='auto',tol=0.0, iterated_power='auto', random_state=None)
  • PCA模型中参数的解释
  1. n_components:主成分个数
    【default】n_components = None = min(n_samples, n_features) - 1
    【选项】:None | (int)
  2. copy:是否复制数据,不复制(False)则覆盖原有数据
    【default】copy = True
    【选项】:True | False
  3. whiten:白噪化处理
    【default】whiten=False
    【选项】:False | bool , optional
    False:乘以n个样本的平方根,然后除以奇异值
    bool
    optional
  4. svd_solver:奇异值分解器
    【default】svd_solver=‘auto’
    【选项】:str{‘auto’ | ‘full’ | ‘arpack’ | ‘randomized’} #要加单引号
    ’auto’:根据数据量自动选择 ‘full’ | ‘arpack’ | ‘randomized’
    ··········if 数据 > 500*500且提取数据解释度低于80% ,使用‘randomized’模式
    ··········else 其他情况则计算精准的SVD值
    ’full’:run exact full SVD calling the standard LAPACK solver via scipy.linalg.svd and select the components by postprocessing
    ’arpack’:run SVD truncated to n_components calling ARPACK solver via scipy.sparse.linalg.svds. It requires strictly 0 < n_components < min(X.shape)
    ’randomized’:采用Halko等人的方法进行随机化SVD
  5. tol:当svd_solver为’arpack’时,容差的设定
    “Tolerance for singular values computed by svd_solver == ‘arpack’.”
    【default】tol=0.0
    【选项】(float)
  6. iterated_power:当svd_solver为’randomized’时,迭代次数的设定
    【default】iterated_power=‘auto’
    【选项】 ‘auto’ | int >= 0
  7. random_state:当svd_solver为‘arpack’ 或 ‘randomized’时,生成随机数的参数设定
    【default】random_state=None
    【选项】:int | RandomState instance | None , optional
    int:根据种子生成随机数
    RandomState instance:通过随机数发生器生成随机数
    None:通过np.random生成随机数
  • PCA下相关模型用法与解释
clf_pca.attributes()
  1. components_:array, shape (n_components, n_features)
# 特征空间主轴,解释度最大变量的方向,即特征根最大的特征向量方向
clf_pca.components_()
  1. explained_variance_:array, shape (n_components,)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!