一、基础主成分分析(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模型中参数的解释
- 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生成随机数
- PCA下相关模型用法与解释
clf_pca.attributes()
- components_:array, shape (n_components, n_features)
# 特征空间主轴,解释度最大变量的方向,即特征根最大的特征向量方向
clf_pca.components_()
- explained_variance_:array, shape (n_components,)
来源:CSDN
作者:北冰洋的喵
链接:https://blog.csdn.net/weixin_39982225/article/details/104184959