當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。