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 <= tolMehr 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_iterauf True gesetzt ist.
Siehe auch
OrthogonalMatchingPursuitOrthogonal Matching Pursuit Modell.
orthogonal_mp_gramLöst OMP-Probleme unter Verwendung der Gram-Matrix und des Produkts X.T * y.
lars_pathBerechnet den Least Angle Regression- oder Lasso-Pfad unter Verwendung des LARS-Algorithmus.
sklearn.decomposition.sparse_encodeSparse 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])