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 ||_2^2 + alpha * || U ||_1
             (U,V)
            with || V_k ||_2 = 1 for all  0 <= k < n_components

V是字典,U是稀疏代码。

参数 说明
X array of shape (n_samples, n_features)
数据矩阵。
n_components int,
要提取的字典原子数。
alpha int,
稀疏的控制参数。
max_iter int,
要执行的最大迭代次数。
tol float,
停止条件的容忍度。
method {‘lars’, ‘cd’}
lars:使用最小角度回归方法求解lasso问题(linear_model.lars_path) cd:使用坐标下降方法计算lasso解(linear_model.Lasso)。如果估计的组件是稀疏的,Lars会更快。
n_jobs int or None, optional (default=None)
要运行的并行作业数量。None是1,除非在joblib.parallel_backend上下文。-1表示使用所有处理器。详见术语表
dict_init array of shape (n_components, n_features),
用于热重启场景的字典的初始值。
code_init array of shape (n_samples, n_components),
用于热重启场景的稀疏代码的初始值。
callback callable or None, optional (default: None)
可调用的,每5次迭代调用一次
verbose bool, optional (default: False)
控制程序的冗长。
random_state int, RandomState instance or None, optional (default=None)
用于随机初始化字典。在多个函数调用中传递可重复的结果。详见术语表
return_n_iter bool
是否返回迭代次数。
positive_dict bool
查找字典时是否要加强积极性。

新版本0.20。
positive_code bool
在寻找代码时是否加强积极性。

新版本0.20。
method_max_iter int, optional (default=1000)
要执行的最大迭代次数。

新版本0.22。
返回值 说明
code array of shape (n_samples, n_components)
矩阵分解中的稀疏码因子。
dictionary array of shape (n_components, n_features),
矩阵分解中的字典因子。
errors array
每次迭代的错误向量。
n_iter int
运行的迭代次数。仅当return_n_iter设置为真时返回。

另见: