文章目录
- 一、 sklearn-PCA模型中参数的解释:
- 二、sklearn-PCA降维后相关数据调用与解释:
- PCA 方法基本思想:
将 n 维特征变量映射到 k 维上(k 维中每个变量都是原 n 维特征的线性组合,组合方式各不相同),这 k 个变量则是主成分。PCA的工作就是从原始的空间中按一定顺序找一组组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的
- 易混点明晰
需要明确的是,提取的主成分与原来的特征变量都不相同,每个主成分都是原来所有特征变量的一种组合方式,多个主成分就是多个组合方式。
- 局限性
- 各成分的实际意义难解释。当原始特征变量数量较多时,每个主成分是实际意义解释要结合这些原始特征变量,故解释和计算变得较为复杂。
- 适用于线性降维,非线性降维时不适用。PCA方法只需要对协方差矩阵 进行特征值分解,得到的特征值和特征向量即是变换矩阵的解和改主成分所解释的方差量,这样的降维方法是线性的降维方法,即从高维空间到低维空间的函数映射是线性的。
- 详细原理与解析
【降维——PCA(非常详细)】-- 知乎 阿泽 这个博主写的非常详细、清晰,推荐
python 应用
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)
#加入数据 X,进行主成分提取。
clf_pca.fit(data)
#这步不会直接出什么结果,想要什么数据需要用相应代码调用(见第二部分)
一、 sklearn-PCA模型中参数的解释:
- n_components:主成分个数
【default】n_components = None = min(n_samples, n_features) - 1
【选项】:None | (int) - copy:是否复制数据,不复制(False)则覆盖原有数据
【default】copy = True
【选项】:True | False - whiten:白噪化处理
【default】whiten=False
【选项】:False | bool , optional
False:不尽行白噪化处理,乘以n个样本的平方根,然后除以奇异值
bool:
optional: - 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 - tol:当svd_solver为’arpack’时,容差的设定
“Tolerance for singular values computed by svd_solver == ‘arpack’.”
【default】tol=0.0
【选项】(float) - iterated_power:当svd_solver为’randomized’时,迭代次数的设定
【default】iterated_power=‘auto’
【选项】 ‘auto’ | int >= 0 - random_state:当svd_solver为‘arpack’ 或 ‘randomized’时,生成随机数的参数设定
【default】random_state=None
【选项】:int | RandomState instance | None , optional
int:根据种子生成随机数
RandomState instance:通过随机数发生器生成随机数
None:通过np.random生成随机数
二、sklearn-PCA降维后相关数据调用与解释:
clf_pca.attributes(),其中 attributes 包括:
- components_:array, shape (n_components, n_features)
特征空间主轴,解释度最大变量的方向,即特征根最大的特征向量方向
「python 代码」clf_pca.components_()
- explained_variance_:array, shape (n_components,)
「python 代码」clf_pca.explained_variance_()