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

Sparse Coding.

Jede Zeile des Ergebnisses ist die Lösung eines Sparse-Coding-Problems. Das Ziel ist es, eine sparse Matrix code zu finden, so dass

X ~= code * dictionary

Lesen Sie mehr im Benutzerhandbuch.

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

Datenmatrix.

dictionaryarray-like von Form (n_components, n_features)

Die Dictionary-Matrix, gegen die die Sparse-Kodierung der Daten gelöst wird. Einige Algorithmen gehen von normalisierten Zeilen für aussagekräftige Ergebnisse aus.

gramarray-like von Form (n_components, n_components), Standard=None

Vorberechnete Gram-Matrix, dictionary * dictionary'.

covarray-like von Form (n_components, n_samples), Standard=None

Vorberechnete Kovarianz, dictionary' * X.

algorithm{‘lasso_lars’, ‘lasso_cd’, ‘lars’, ‘omp’, ‘threshold’}, Standard=’lasso_lars’

Der verwendete Algorithmus

  • 'lars': verwendet die Least Angle Regression-Methode (linear_model.lars_path);

  • 'lasso_lars': verwendet Lars, um die Lasso-Lösung zu berechnen;

  • 'lasso_cd': verwendet die Koordinatenabstiegsmethode, um die Lasso-Lösung zu berechnen (linear_model.Lasso). lasso_lars ist schneller, wenn die geschätzten Komponenten spars sind;

  • 'omp': verwendet Orthogonal Matching Pursuit zur Schätzung der Sparse-Lösung;

  • 'threshold': setzt alle Koeffizienten, die kleiner sind als die Regularisierung aus der Projektion dictionary * data', auf Null.

n_nonzero_coefsint, Standardwert=None

Anzahl der Nicht-Null-Koeffizienten, die in jeder Spalte der Lösung angestrebt werden. Dies wird nur von algorithm='lars' und algorithm='omp' verwendet und wird von alpha im omp-Fall überschrieben. Wenn None, dann n_nonzero_coefs=int(n_features / 10).

alphafloat, Standard=None

Wenn algorithm='lasso_lars' oder algorithm='lasso_cd', ist alpha die Strafe, die auf die L1-Norm angewendet wird. Wenn algorithm='threshold', ist alpha der absolute Wert des Schwellenwerts, unter dem Koeffizienten auf Null gesetzt werden. Wenn algorithm='omp', ist alpha der Toleranzparameter: der Wert des Rekonstruktionsfehlers, der angestrebt wird. In diesem Fall überschreibt er n_nonzero_coefs. Wenn None, Standardwert ist 1.

copy_covbool, Standard=True

Ob die vorberechnete Kovarianzmatrix kopiert werden soll; wenn False, kann sie überschrieben werden.

initndarray von Form (n_samples, n_components), Standard=None

Initialisierungswert der Sparse-Codes. Nur verwendet, wenn algorithm='lasso_cd'.

max_iterint, default=1000

Maximale Anzahl von Iterationen, die durchgeführt werden sollen, wenn algorithm='lasso_cd' oder 'lasso_lars'.

n_jobsint, default=None

Anzahl der parallelen Jobs, die ausgeführt werden sollen. None bedeutet 1, es sei denn, Sie befinden sich in einem joblib.parallel_backend-Kontext. -1 bedeutet die Verwendung aller Prozessoren. Weitere Einzelheiten finden Sie im Glossar.

check_inputbool, Standardwert=True

Wenn False, werden die Eingabearrays X und dictionary nicht geprüft.

verboseint, default=0

Steuert die Ausführlichkeit; je höher, desto mehr Meldungen.

positivebool, Standardwert=False

Ob die Positivität bei der Ermittlung der Kodierung erzwungen werden soll.

Hinzugefügt in Version 0.20.

Gibt zurück:
codendarray of shape (n_samples, n_components)

Die Sparse-Codes.

Siehe auch

sklearn.linear_model.lars_path

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

sklearn.linear_model.orthogonal_mp

Löst Orthogonal Matching Pursuit-Probleme.

sklearn.linear_model.Lasso

Trainiert lineares Modell mit L1-Prior als Regularisierer.

SparseCoder

Findet eine sparse Darstellung von Daten aus einem festen, vorberechneten Dictionary.

Beispiele

>>> 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.]])