sklearn.decomposition.SparsePCA¶
class sklearn.decomposition.SparsePCA(n_components=None, *, alpha=1, ridge_alpha=0.01, max_iter=1000, tol=1e-08, method='lars', n_jobs=None, U_init=None, V_init=None, verbose=False, random_state=None, normalize_components='deprecated')
稀疏主成分分析(SparsePCA)
查找可以最佳地重构数据的稀疏组件集。稀疏程度可通过参数alpha给出的L1惩罚系数来控制。
在用户指南中阅读更多内容。
参数 | 说明 |
---|---|
n_components | int, 要提取的稀疏组件数。 |
alpha | float, 稀疏控制参数。较高的值会导致组件稀疏。 |
ridge_alpha | float, 调用transform方法时要应用以改善条件的脊收缩量。 |
max_iter | int, 要执行的最大迭代次数。 |
tol | float, 停止条件的容差。 |
method | {‘lars’, ‘cd’} lars:使用最小角度回归方法来解决套索问题(linear_model.lars_path)cd:使用坐标下降法来计算套索解决方案(linear_model.Lasso)。如果估计的成分稀疏,Lars将更快。 |
n_jobs | int or None, optional (default=None) 要运行的并行作业数。 None 除非joblib.parallel_backend 上下文中,否则表示1 。 -1 表示使用所有处理器。有关 更多详细信息,请参见词汇表。 |
U_init | array of shape (n_samples, n_components), 热启动方案的负载初始值。 |
V_init | array of shape (n_components, n_features), 用于热启动方案的组件初始值。 |
verbose | int 控制详细程度;越高,消息越多。预设为0。 |
random_state | int, RandomState instance, default=None 在词典学习期间使用。在多个函数调用之间传递int以获得可重复的结果。请参阅词汇表。 |
normalize_components | ‘deprecated’ 此参数没有任何作用。组件总是标准化的。 0.20版中的新功能。 自版本0.22起已弃用: normalize_components 在0.22中已弃用,并将在0.24中删除。 |
属性 | 说明 |
---|---|
components_ | array, [n_components, n_features] 从数据中提取的稀疏成分。 |
error_ | array 每次迭代的误差向量。 |
n_components_ | int 估计的组件数量。 0.23版中的新功能。 |
n_iter_ | int 运行的迭代次数。 |
mean_ | array, shape (n_features,) 根据训练集估算的每特征经验均值。等于 X.mean(axis=0) 。 |
另见
例子
>>> import numpy as np
>>> from sklearn.datasets import make_friedman1
>>> from sklearn.decomposition import SparsePCA
>>> X, _ = make_friedman1(n_samples=200, n_features=30, random_state=0)
>>> transformer = SparsePCA(n_components=5, random_state=0)
>>> transformer.fit(X)
SparsePCA(...)
>>> X_transformed = transformer.transform(X)
>>> X_transformed.shape
(200, 5)
>>> # most values in the components_ are zero (sparsity)
>>> np.mean(transformer.components_ == 0)
0.9666...
方法
方法 | 说明 |
---|---|
fit (X[, y]) |
根据X中的数据拟合模型。 |
fit_transform (X[, y]) |
拟合数据,然后对其进行转换。 |
get_params ([deep]) |
获取此估计量的参数。 |
set_params (**params) |
设置此估算器的参数。 |
transform (X) |
数据的最小二乘投影到稀疏分量上。 |
__init__(n_components=None, *, alpha=1, ridge_alpha=0.01, max_iter=1000, tol=1e-08, method='lars', n_jobs=None, U_init=None, V_init=None, verbose=False, random_state=None, normalize_components='deprecated')
初始化self。请参阅help(type(self))获取准确的信息。
fit(X, y=None)
根据X中的数据拟合模型。
参数 | 说明 |
---|---|
X | array-like, shape (n_samples, n_features) 训练向量,其中样本数量n_samples个,特征数量n_features个。 |
y | Ignored |
参数 | 说明 |
---|---|
self | object 返回实例本身。 |
fit_transform(X,y = None,** fit_params )
拟合数据,然后对其进行转换。
使用可选参数fit_params将转换器拟合到X和y,并返回X的转换版本。
参数 | 说明 |
---|---|
X | {array-like, sparse matrix, dataframe} of shape (n_samples, n_features) |
y | ndarray of shape (n_samples,), default=None 目标值。 |
**fit_params | dict 其他拟合参数。 |
返回值 | 说明 |
---|---|
X_new | ndarray array of shape (n_samples, n_features_new) 转换后的数组。 |
get_params(deep=True)
获取此估计器的参数。
参数 | 说明 |
---|---|
deep | bool, default=True 如果为True,则将返回此估算器和其所包含子对象的参数。 |
参数 | 说明 |
---|---|
params | mapping of string to any 参数名称映射到其值。 |
set_params(**params)
设置此估算器的参数。
该方法适用于简单的估计器以及嵌套对象(例如管道)。后者具有<component>__<parameter>
形式的参数, 以便可以更新嵌套对象的每个组件。
参数 | 说明 |
---|---|
**params | dict 估算器参数。 |
返回值 | 说明 |
---|---|
self | object 估算器实例。 |
transform(X )
数据的最小二乘投影到稀疏分量上。
为了避免在系统不确定的情况下出现不稳定问题,可以通过ridge_alpha
参数进行正则化(Ridge回归) 。
请注意,稀疏PCA组件的正交性不像PCA中那样强制,因此不能使用简单的线性投影。
参数 | 说明 |
---|---|
X | array of shape (n_samples, n_features) 要转换的测试数据,必须具有与用于训练模型的数据相同数量的特征。 |
返回值 | 说明 |
---|---|
X_new | array, shape (n_samples, n_components) 转换后的数据。 |