当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn SparseCoder用法及代码示例


本文简要介绍python语言中 sklearn.decomposition.SparseCoder 的用法。

用法:

class sklearn.decomposition.SparseCoder(dictionary, *, transform_algorithm='omp', transform_n_nonzero_coefs=None, transform_alpha=None, split_sign=False, n_jobs=None, positive_code=False, transform_max_iter=1000)

稀疏编码。

根据固定的预先计算的字典查找数据的稀疏表示。

结果的每一行都是稀疏编码问题的解决方案。目标是找到一个稀疏数组code,这样:

X ~= code * dictionary

在用户指南中阅读更多信息。

参数

dictionaryndarray 形状(n_components,n_features)

用于稀疏编码的字典原子。假设线被标准化为单位范数。

transform_algorithm{‘lasso_lars’, ‘lasso_cd’,‘lars’, ‘omp’,‘threshold’},默认='omp'

用于转换数据的算法:

  • 'lars':使用最小角度回归法(linear_model.lars_path);
  • 'lasso_lars' : 使用 Lars 计算 Lasso 解;
  • 'lasso_cd' :使用坐标下降法计算 Lasso 解(linear_model.Lasso)。 'lasso_lars' 如果估计的组件稀疏,会更快;
  • 'omp':使用正交匹配追踪估计稀疏解;
  • 'threshold' :将投影 dictionary * X' 中小于 alpha 的所有系数压缩为零。
transform_n_nonzero_coefs整数,默认=无

解的每列中要定位的非零系数的数量。这仅由algorithm='lars'algorithm='omp' 使用,并在omp 情况下被alpha 覆盖。如果 None ,那么 transform_n_nonzero_coefs=int(n_features / 10)

transform_alpha浮点数,默认=无

如果 algorithm='lasso_lars'algorithm='lasso_cd'alpha 是应用于 L1 范数的惩罚。如果 algorithm='threshold'alpha 是阈值的绝对值,低于该阈值的系数将被压缩为零。如果 algorithm='omp'alpha 是容差参数:目标重建误差的值。在这种情况下,它会覆盖 n_nonzero_coefs 。如果 None ,默认为 1。

split_sign布尔,默认=假

是否将稀疏特征向量拆分为其负部分和正部分的串联。这可以提高下游分类器的性能。

n_jobs整数,默认=无

要运行的并行作业数。 None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有处理器。有关详细信息,请参阅词汇表。

positive_code布尔,默认=假

查找代码时是否强制执行积极性。

transform_max_iter整数,默认=1000

algorithm='lasso_cd'lasso_lars 时要执行的最大迭代次数。

属性

components_ndarray 形状(n_components,n_features)

已弃用:属性 components_ 在 0.24 中已弃用,并将在 1.1 中删除(重命名为 0.26)。

n_components_int

原子数。

n_features_in_int

fit 期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

拟合期间看到的特征名称。仅当 X 具有全为字符串的函数名称时才定义。

例子

>>> import numpy as np
>>> from sklearn.decomposition import SparseCoder
>>> X = np.array([[-1, -1, -1], [0, 0, 3]])
>>> dictionary = np.array(
...     [[0, 1, 0],
...      [-1, -1, 2],
...      [1, 1, 1],
...      [0, 1, 1],
...      [0, 2, 1]],
...    dtype=np.float64
... )
>>> coder = SparseCoder(
...     dictionary=dictionary, transform_algorithm='lasso_lars',
...     transform_alpha=1e-10,
... )
>>> coder.transform(X)
array([[ 0.,  0., -1.,  0.,  0.],
       [ 0.,  1.,  1.,  0.,  0.]])

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.decomposition.SparseCoder。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。