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)[source]

Solves a dictionary learning matrix factorization problem.

Finds the best dictionary and the corresponding sparse code for approximating the data matrix X by solving:

(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

where V is the dictionary and U is the sparse code.

Read more in the User Guide.

Parameters
Xarray of shape (n_samples, n_features)

Data matrix.

n_componentsint,

Number of dictionary atoms to extract.

alphaint,

Sparsity controlling parameter.

max_iterint,

Maximum number of iterations to perform.

tolfloat,

Tolerance for the stopping condition.

method{‘lars’, ‘cd’}

lars: uses the least angle regression method to solve the lasso problem (linear_model.lars_path) cd: uses the coordinate descent method to compute the Lasso solution (linear_model.Lasso). Lars will be faster if the estimated components are sparse.

n_jobsint or None, optional (default=None)

Number of parallel jobs to run. None means 1 unless in a joblib.parallel_backend context. -1 means using all processors. See Glossary for more details.

dict_initarray of shape (n_components, n_features),

Initial value for the dictionary for warm restart scenarios.

code_initarray of shape (n_samples, n_components),

Initial value for the sparse code for warm restart scenarios.

callbackcallable or None, optional (default: None)

Callable that gets invoked every five iterations

verbosebool, optional (default: False)

To control the verbosity of the procedure.

random_stateint, RandomState instance or None, optional (default=None)

If int, random_state is the seed used by the random number generator; If RandomState instance, random_state is the random number generator; If None, the random number generator is the RandomState instance used by np.random.

return_n_iterbool

Whether or not to return the number of iterations.

positive_dictbool

Whether to enforce positivity when finding the dictionary.

New in version 0.20.

positive_codebool

Whether to enforce positivity when finding the code.

New in version 0.20.

method_max_iterint, optional (default=1000)

Maximum number of iterations to perform.

New in version 0.22.

Returns
codearray of shape (n_samples, n_components)

The sparse code factor in the matrix factorization.

dictionaryarray of shape (n_components, n_features),

The dictionary factor in the matrix factorization.

errorsarray

Vector of errors at each iteration.

n_iterint

Number of iterations run. Returned only if return_n_iter is set to True.