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)[Quelle]#

Orthogonal Matching Pursuit (OMP).

Löst n_targets Orthogonal Matching Pursuit Probleme. Eine Instanz des Problems hat die Form

Wenn parametrisiert durch die Anzahl der Nicht-Null-Koeffizienten mittels n_nonzero_coefs: argmin ||y - Xgamma||^2 unter der Bedingung ||gamma||_0 <= n_{nonzero coefs}

Wenn parametrisiert durch den Fehler mittels des Parameters tol: argmin ||gamma||_0 unter der Bedingung ||y - Xgamma||^2 <= tol

Mehr dazu im Benutzerhandbuch.

Parameter:
Xarray-like der Form (n_samples, n_features)

Eingabedaten. Spalten werden als Einheitsnorm angenommen.

yndarray der Form (n_samples,) oder (n_samples, n_targets)

Eingabeziele.

n_nonzero_coefsint, Standardwert=None

Gewünschte Anzahl von Nicht-Null-Einträgen in der Lösung. Wenn None (standardmäßig) wird dieser Wert auf 10% von n_features gesetzt.

tolfloat, Standardwert=None

Maximale quadrierte Norm des Residuums. Wenn nicht None, überschreibt n_nonzero_coefs.

precompute‘auto’ oder bool, Standard=False

Ob Vorberechnungen durchgeführt werden sollen. Verbessert die Leistung, wenn n_targets oder n_samples sehr groß sind.

copy_Xbool, Standardwert=True

Ob die Designmatrix X vom Algorithmus kopiert werden muss. Ein falscher Wert ist nur hilfreich, wenn X bereits Fortran-sortiert ist, andernfalls wird ohnehin eine Kopie gemacht.

return_pathbool, Standard=False

Ob jeder Wert der Nicht-Null-Koeffizienten entlang des Vorwärtspfades zurückgegeben werden soll. Nützlich für die Kreuzvalidierung.

return_n_iterbool, Standard=False

Ob die Anzahl der Iterationen zurückgegeben werden soll oder nicht.

Gibt zurück:
coefndarray der Form (n_features,) oder (n_features, n_targets)

Koeffizienten der OMP-Lösung. Wenn return_path=True, enthält dies den gesamten Koeffizientenpfad. In diesem Fall hat es die Form (n_features, n_features) oder (n_features, n_targets, n_features) und die Iteration über die letzte Achse erzeugt Koeffizienten in aufsteigender Reihenfolge der aktiven Merkmale.

n_itersarray-ähnlich oder int

Anzahl der aktiven Merkmale für jedes Ziel. Wird nur zurückgegeben, wenn return_n_iter auf True gesetzt ist.

Siehe auch

OrthogonalMatchingPursuit

Orthogonal Matching Pursuit Modell.

orthogonal_mp_gram

Löst OMP-Probleme unter Verwendung der Gram-Matrix und des Produkts X.T * y.

lars_path

Berechnet den Least Angle Regression- oder Lasso-Pfad unter Verwendung des LARS-Algorithmus.

sklearn.decomposition.sparse_encode

Sparse Coding.

Anmerkungen

Orthogonal Matching Pursuit wurde eingeführt in S. Mallat, Z. Zhang, Matching pursuits with time-frequency dictionaries, IEEE Transactions on Signal Processing, Vol. 41, No. 12. (Dezember 1993), S. 3397-3415. (https://www.di.ens.fr/~mallat/papiers/MallatPursuit93.pdf)

Diese Implementierung basiert auf Rubinstein, R., Zibulevsky, M. und Elad, M., Efficient Implementation of the K-SVD Algorithm using Batch Orthogonal Matching Pursuit Technical Report - CS Technion, April 2008. https://www.cs.technion.ac.il/~ronrubin/Publications/KSVD-OMP-v2.pdf

Beispiele

>>> from sklearn.datasets import make_regression
>>> from sklearn.linear_model import orthogonal_mp
>>> X, y = make_regression(noise=4, random_state=0)
>>> coef = orthogonal_mp(X, y)
>>> coef.shape
(100,)
>>> X[:1,] @ coef
array([-78.68])