sklearn.decomposition.PCA(n_components=None, *, copy=True,\
whiten=False, svd_solver='auto', tol=0.0, iterated_power='auto',\
n_oversamples=10, power_iteration_normalizer='auto', random_state=None)
int, float or ‘mle’, default=None
要保留的主成分数量,当不设置该参数时所有组分都将被保留n_components = min(n_samples, n_features)
关于该参数和svd_solver参数的关系如下:
该参数 | svd_solver参数 | 其他 |
---|---|---|
n_components=‘mle’ | svd_solver = ‘full’ | 使用Minka’s MLE 预测维度 |
0 < n_components < 1 | svd_solver = ‘full’ | 选择需要解释的方差大于n个分量所指定的百分比的分量数量 |
n_components=None | n_components=min(n_samples, n_features) - 1 | |
svd_solver = ‘arpack’ | components 的数量必须严格小于min(n_features,n_samples) |
bool, default=True
如果该参数为False,拟合时数据将会被覆写;而且使用fit(X)+transform(X)将得不到期望的结果,此时应该使用 fit_transform(X)替代
bool, default=False
向量将会被乘以n_samples的平方根,然后再除以奇异值,确保不相关的输出与单位组成部分的差异
白化将从转换后的信号中删除一些信息,但有时会通过使下游估计器的数据遵守一些固有的规则等方法来提高预测的精度
{‘auto’, ‘full’, ‘arpack’, ‘randomized’}, default=’auto’
afterwards.
取值 | 描述 |
---|---|
auto | 由默认的策略根据数据X选取求解器 |
full | 通过scipy.linalg.svd 调用标准的LAPACK求解器,直接进行完整的奇异值分解过程 |
arpack | 通过scipy.sparse.linalg.svds调用ARPACK求解器,将奇异值分解(SVD)分为多个部分逐个求解 |
randomized | 采用Halko等方法进行随机SVD。 |
float, default=0.0
svd_solver = ‘arpack’时计算得到的奇异值容忍度,取值范围 :[0.0, infinity).
int or ‘auto’, default=’auto’
svd_solver = ‘randomized’时幂方法的迭代次数,取值范围 :[0.0, infinity).
int, default=10
仅仅当svd_solver="randomized时有效,对应于额外的随机向量个数来对X的范围进行采样,以确保适当的条件
{‘auto’, ‘QR’, ‘LU’, ‘none’}, default=’auto’
随机SVD求解器的幂迭代归一化器
ndarray of shape (n_components, n_features)
特征空间的主轴,表示数据中方差最大的方向。
等价地,中心输入数据的右奇异向量,平行于它的特征向量
ndarray of shape (n_components,)
由每个选定的成分解释的方差的数量、特征值
数值上等于等于n个分量X的协方差矩阵的最大特征值
ndarray of shape (n_components,)
由每个所选组件解释的方差百分比、各主成分的贡献率
当n_components参数没有设置时,所有的特征都将被被保留而且比率之和为1
ndarray of shape (n_components,)
与每个选中部分相关的奇异值
ndarray of shape (n_features,)
每个特征的经验平均值,从训练集估计。数值上等于 X.mean(axis=0).
int
主成分的估计数量
int
训练数据中的特征数量
int
训练数据中的样本数量
float
噪声协方差矩阵,等于X的协方差矩阵(min(n个特征,n个样本)- n个分量)最小特征值的平均值。
int
拟合期间看到的特征数量
ndarray of shape (n_features_in_,)
拟合期间看到的特征名称,仅当X拥有字符串数据类型的特征名称时才定义
方法名 | 描述 |
---|---|
fit(X[, y]) | 使用训练数据X拟合模型 |
fit_transform(X[, y]) | 拟合模型并对数据X进行降维 |
get_covariance() | 根据得到的模型计算数据的协方差 |
get_feature_names_out([input_features]) | 返回输出特征的名称 |
get_params([deep]) | 返回模型参数 |
get_precision() | 根据得到的模型计算数据的精度矩阵 |
inverse_transform(X) | 将数据恢复为初始状态 |
score(X[, y]) | 返回模型得分 |
score_samples(X) | 返回每个数据样本的似然对数 |
set_params(**params) | 设置模型参数 |
transform(X) | 对数据X进行降维 |