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设置为真时返回。 |
另见: