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


Python sklearn dict_learning用法及代碼示例

本文簡要介紹python語言中 sklearn.decomposition.dict_learning 的用法。

用法:

sklearn.decomposition.dict_learning(X, n_components, *, alpha, max_iter=100, tol=1e-08, method='lars', n_jobs=None, dict_init=None, code_init=None, callback=None, verbose=False, random_state=None, return_n_iter=False, positive_dict=False, positive_code=False, method_max_iter=1000)

解決字典學習矩陣分解問題。

通過求解來找到近似數據矩陣 X 的最佳字典和相應的稀疏代碼:

(U^*, V^*) = argmin 0.5 || X - U V ||_Fro^2 + alpha * || U ||_1,1
             (U,V)
            with || V_k ||_2 = 1 for all  0 <= k < n_components

其中 V 是字典,U 是稀疏代碼。 ||.||_Fro 代表 Frobenius 範數,||.||_1,1 代表entry-wise 矩陣範數,它是矩陣中所有條目的絕對值之和。

在用戶指南中閱讀更多信息。

參數

Xndarray 形狀(n_samples,n_features)

數據矩陣。

n_componentsint

要提取的字典原子數。

alphaint

稀疏性控製參數。

max_iter整數,默認=100

要執行的最大迭代次數。

tol浮點數,默認=1e-8

停止條件的公差。

method{‘lars’, ‘cd’},默認='lars'

使用的方法:

  • 'lars' : 使用最小角度回歸法求解套索

    問題(linear_model.lars_path);

  • 'cd' :使用坐標下降法計算 Lasso 解(linear_model.Lasso)。如果估計的組件稀疏,Lars 會更快。
n_jobs整數,默認=無

要運行的並行作業數。 None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有處理器。有關詳細信息,請參閱詞匯表。

dict_initndarray 形狀(n_components,n_features),默認=None

熱重啟方案的字典初始值。僅在 code_initdict_init 不是 None 時使用。

code_initndarray 形狀(n_samples,n_components),默認=None

熱重啟場景的稀疏代碼的初始值。僅在 code_initdict_init 不是 None 時使用。

callback可調用,默認=無

每五次迭代調用一次的可調用對象

verbose布爾,默認=假

控製過程的詳細程度。

random_stateint、RandomState 實例或無,默認=無

用於隨機初始化字典。傳遞 int 以獲得跨多個函數調用的可重現結果。請參閱術語表。

return_n_iter布爾,默認=假

是否返回迭代次數。

positive_dict布爾,默認=假

查找字典時是否強製執行積極性。

positive_code布爾,默認=假

查找代碼時是否強製執行積極性。

method_max_iter整數,默認=1000

要執行的最大迭代次數。

返回

codendarray 形狀(n_samples,n_components)

矩陣分解中的稀疏碼因子。

dictionaryndarray 形狀(n_components,n_features),

矩陣分解中的字典因子。

errors數組

每次迭代的錯誤向量。

n_iterint

運行的迭代次數。僅當 return_n_iter 設置為 True 時返回。

相關用法


注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.decomposition.dict_learning。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。