sklearn.linear_model
.orthogonal_mp¶

sklearn.linear_model.
orthogonal_mp
(X, y, n_nonzero_coefs=None, tol=None, precompute=False, copy_X=True, return_path=False, return_n_iter=False)[source]¶ Orthogonal Matching Pursuit (OMP)
Solves n_targets Orthogonal Matching Pursuit problems. An instance of the problem has the form:
When parametrized by the number of nonzero coefficients using
n_nonzero_coefs
: argmin y  Xgamma^2 subject to gamma_0 <= n_{nonzero coefs}When parametrized by error using the parameter
tol
: argmin gamma_0 subject to y  Xgamma^2 <= tolRead more in the User Guide.
 Parameters
 Xarray, shape (n_samples, n_features)
Input data. Columns are assumed to have unit norm.
 yarray, shape (n_samples,) or (n_samples, n_targets)
Input targets
 n_nonzero_coefsint
Desired number of nonzero entries in the solution. If None (by default) this value is set to 10% of n_features.
 tolfloat
Maximum norm of the residual. If not None, overrides n_nonzero_coefs.
 precompute{True, False, ‘auto’},
Whether to perform precomputations. Improves performance when n_targets or n_samples is very large.
 copy_Xbool, optional
Whether the design matrix X must be copied by the algorithm. A false value is only helpful if X is already Fortranordered, otherwise a copy is made anyway.
 return_pathbool, optional. Default: False
Whether to return every value of the nonzero coefficients along the forward path. Useful for crossvalidation.
 return_n_iterbool, optional default False
Whether or not to return the number of iterations.
 Returns
 coefarray, shape (n_features,) or (n_features, n_targets)
Coefficients of the OMP solution. If
return_path=True
, this contains the whole coefficient path. In this case its shape is (n_features, n_features) or (n_features, n_targets, n_features) and iterating over the last axis yields coefficients in increasing order of active features. n_itersarraylike or int
Number of active features across every target. Returned only if
return_n_iter
is set to True.
See also
OrthogonalMatchingPursuit
orthogonal_mp_gram
lars_path
decomposition.sparse_encode
Notes
Orthogonal matching pursuit was introduced in S. Mallat, Z. Zhang, Matching pursuits with timefrequency dictionaries, IEEE Transactions on Signal Processing, Vol. 41, No. 12. (December 1993), pp. 33973415. (http://blanche.polytechnique.fr/~mallat/papiers/MallatPursuit93.pdf)
This implementation is based on Rubinstein, R., Zibulevsky, M. and Elad, M., Efficient Implementation of the KSVD Algorithm using Batch Orthogonal Matching Pursuit Technical Report  CS Technion, April 2008. https://www.cs.technion.ac.il/~ronrubin/Publications/KSVDOMPv2.pdf