目录
算法功能
资源来源于官网
主成分分析(PCA)
就是在尽可能保留数据特征的情况下,降低数据的维度。
这是怎么实现的呢?
在sklearn.decomposition.PCA中,使用的是SVD(奇异值分解)的方法进行降维。
SVD的基本思想:
设有一个m×n的矩阵A(设m<n),可以将它分解为Am×n=Um×m· Λ ·Vn×n。其中U和V是正交矩阵,Λ是对角矩阵。这是所有矩阵都具有的性质。
因此可以将A分解A=λ1UV+λ2UV+…+λmUV=A1+A2+…+Am
这其中有的Ai小,对A整体的影响小,可以忽略,将m个Ai变成k个Ai对整体的影响也不大。
这样就实现了降维。
举一个例子,比如说在打电话的时候,除了我们想要听到的人声之外还有很多环境中的杂音。高低起伏的人声就是重要的特征值,称之为主成分,而环境音就是影响不大的特征值,可以忽略。
外界杂音去除,这样对通话内容并没有影响,甚至既减少了数据量有提高了通话质量。
算法参数
sklearn.decomposition.PCA(n_components=None, *, copy=True, whiten=False, svd_solver=‘auto’, tol=0.0, iterated_power=‘auto’, random_state=None)
参数 | 功能 |
---|---|
n_components | 整数型,浮点型是或者’mle’。如果这个参数没有设定,那么所有原始维度都将保留。如果这里是’mle’且svd_solver == ‘full’,那函数将会自己推测维度。 |
copy | 布尔型,默认True。如果是False,那传递给fit函数的数据将被覆盖。 |
whiten | 布尔型,默认为False。是否消除矢量之间的相关性 |
svd_solver | {‘auto’, ‘full’, ‘arpack’, ‘randomized’},,默认’au |