sklearn.decomposition
.sparse_encode#
- sklearn.decomposition.sparse_encode(X, dictionary, *, gram=None, cov=None, algorithm='lasso_lars', n_nonzero_coefs=None, alpha=None, copy_cov=True, init=None, max_iter=1000, n_jobs=None, check_input=True, verbose=0, positive=False)[source]#
Sparse coding.
Each row of the result is the solution to a sparse coding problem. The goal is to find a sparse array
code
such that:X ~= code * dictionary
Read more in the User Guide.
- Parameters:
- Xarray-like of shape (n_samples, n_features)
Data matrix.
- dictionaryarray-like of shape (n_components, n_features)
The dictionary matrix against which to solve the sparse coding of the data. Some of the algorithms assume normalized rows for meaningful output.
- gramarray-like of shape (n_components, n_components), default=None
Precomputed Gram matrix,
dictionary * dictionary'
.- covarray-like of shape (n_components, n_samples), default=None
Precomputed covariance,
dictionary' * X
.- algorithm{‘lasso_lars’, ‘lasso_cd’, ‘lars’, ‘omp’, ‘threshold’}, default=’lasso_lars’
The algorithm used:
'lars'
: uses the least angle regression method (linear_model.lars_path
);'lasso_lars'
: uses Lars to compute the Lasso solution;'lasso_cd'
: uses the coordinate descent method to compute the Lasso solution (linear_model.Lasso
). lasso_lars will be faster if the estimated components are sparse;'omp'
: uses orthogonal matching pursuit to estimate the sparse solution;'threshold'
: squashes to zero all coefficients less than regularization from the projectiondictionary * data'
.
- n_nonzero_coefsint, default=None
Number of nonzero coefficients to target in each column of the solution. This is only used by
algorithm='lars'
andalgorithm='omp'
and is overridden byalpha
in theomp
case. IfNone
, thenn_nonzero_coefs=int(n_features / 10)
.- alphafloat, default=None
If
algorithm='lasso_lars'
oralgorithm='lasso_cd'
,alpha
is the penalty applied to the L1 norm. Ifalgorithm='threshold'
,alpha
is the absolute value of the threshold below which coefficients will be squashed to zero. Ifalgorithm='omp'
,alpha
is the tolerance parameter: the value of the reconstruction error targeted. In this case, it overridesn_nonzero_coefs
. IfNone
, default to 1.- copy_covbool, default=True
Whether to copy the precomputed covariance matrix; if
False
, it may be overwritten.- initndarray of shape (n_samples, n_components), default=None
Initialization value of the sparse codes. Only used if
algorithm='lasso_cd'
.- max_iterint, default=1000
Maximum number of iterations to perform if
algorithm='lasso_cd'
or'lasso_lars'
.- n_jobsint, default=None
Number of parallel jobs to run.
None
means 1 unless in ajoblib.parallel_backend
context.-1
means using all processors. See Glossary for more details.- check_inputbool, default=True
If
False
, the input arrays X and dictionary will not be checked.- verboseint, default=0
Controls the verbosity; the higher, the more messages.
- positivebool, default=False
Whether to enforce positivity when finding the encoding.
New in version 0.20.
- Returns:
- codendarray of shape (n_samples, n_components)
The sparse codes.
See also
sklearn.linear_model.lars_path
Compute Least Angle Regression or Lasso path using LARS algorithm.
sklearn.linear_model.orthogonal_mp
Solves Orthogonal Matching Pursuit problems.
sklearn.linear_model.Lasso
Train Linear Model with L1 prior as regularizer.
SparseCoder
Find a sparse representation of data from a fixed precomputed dictionary.
Examples
>>> import numpy as np >>> from sklearn.decomposition import sparse_encode >>> 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 ... ) >>> sparse_encode(X, dictionary, alpha=1e-10) array([[ 0., 0., -1., 0., 0.], [ 0., 1., 1., 0., 0.]])