SparseCoder#

class sklearn.decomposition.SparseCoder(dictionary, *, transform_algorithm='omp', transform_n_nonzero_coefs=None, transform_alpha=None, split_sign=False, n_jobs=None, positive_code=False, transform_max_iter=1000)[Quelle]#

Sparse Coding.

Findet eine dünne Repräsentation von Daten gegen ein festes, vordefiniertes Dictionary.

Jede Zeile des Ergebnisses ist die Lösung eines dünnbesetzten Kodierungsproblems. Das Ziel ist es, ein dünnbesetztes Array code zu finden, so dass

X ~= code * dictionary

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
dictionaryndarray der Form (n_components, n_features)

Die Dictionary-Atome, die für die dünnbesetzte Kodierung verwendet werden. Es wird angenommen, dass Zeilen auf Norm 1 normiert sind.

transform_algorithm{‘lasso_lars’, ‘lasso_cd’, ‘lars’, ‘omp’, ‘threshold’}, default=’omp’

Algorithmus, der zur Transformation der Daten verwendet wird.

  • '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 Koordinatenabstiegs-Methode, um die Lasso-Lösung zu berechnen (linear_model.Lasso). 'lasso_lars' ist schneller, wenn die geschätzten Komponenten dünn besetzt sind;

  • 'omp': verwendet orthogonales Matching Pursuit, um die dünnbesetzte Lösung zu schätzen;

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

transform_n_nonzero_coefsint, default=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 durch alpha im omp-Fall überschrieben. Wenn None, dann transform_n_nonzero_coefs=int(n_features / 10).

transform_alphafloat, default=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 gequetscht werden. Wenn algorithm='omp', ist alpha der Toleranzparameter: der Wert des Rekonstruktionsfehlers, der angestrebt wird. In diesem Fall überschreibt es n_nonzero_coefs. Wenn None, Standardwert ist 1.

split_signbool, default=False

Ob der spärliche Feature-Vektor in die Konkatenation seines negativen und positiven Teils aufgeteilt werden soll. Dies kann die Leistung nachgeschalteter Klassifikatoren verbessern.

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.

positive_codebool, default=False

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

Hinzugefügt in Version 0.20.

transform_max_iterint, default=1000

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

Hinzugefügt in Version 0.22.

Attribute:
n_components_int

Anzahl der Atome.

n_features_in_int

Anzahl der während des fits gesehenen Merkmale.

Hinzugefügt in Version 0.24.

feature_names_in_ndarray mit Form (n_features_in_,)

Namen der während fit gesehenen Merkmale. Nur definiert, wenn X Merkmalnamen hat, die alle Zeichenketten sind.

Hinzugefügt in Version 1.0.

Siehe auch

DictionaryLearning

Findet ein Dictionary, das Daten spärlich kodiert.

MiniBatchDictionaryLearning

Eine schnellere, weniger genaue Version des Dictionary-Lernalgorithmus.

MiniBatchSparsePCA

Mini-Batch Sparse Principal Components Analysis.

SparsePCA

Spärliche Hauptkomponentenanalyse.

sparse_encode

Dünnbesetzte Kodierung, bei der jede Zeile des Ergebnisses die Lösung eines dünnbesetzten Kodierungsproblems ist.

Beispiele

>>> import numpy as np
>>> from sklearn.decomposition import SparseCoder
>>> 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
... )
>>> coder = SparseCoder(
...     dictionary=dictionary, transform_algorithm='lasso_lars',
...     transform_alpha=1e-10,
... )
>>> coder.transform(X)
array([[ 0.,  0., -1.,  0.,  0.],
       [ 0.,  1.,  1.,  0.,  0.]])
fit(X, y=None)[Quelle]#

Validiert nur die Parameter des Schätzers.

Diese Methode ermöglicht: (i) die Validierung der Parameter des Schätzers und (ii) die Konsistenz mit der scikit-learn Transformer-API.

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

Trainingsdaten. Wird nur zur Eingabevalidierung verwendet.

yIgnoriert

Wird nicht verwendet, ist aber aus Gründen der API-Konsistenz per Konvention vorhanden.

Gibt zurück:
selfobject

Gibt die Instanz selbst zurück.

fit_transform(X, y=None, **fit_params)[Quelle]#

An Daten anpassen, dann transformieren.

Passt den Transformer an X und y mit optionalen Parametern fit_params an und gibt eine transformierte Version von X zurück.

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

Eingabestichproben.

yarray-like der Form (n_samples,) oder (n_samples, n_outputs), Standardwert=None

Zielwerte (None für unüberwachte Transformationen).

**fit_paramsdict

Zusätzliche Fit-Parameter. Nur übergeben, wenn der Estimator zusätzliche Parameter in seiner fit-Methode akzeptiert.

Gibt zurück:
X_newndarray array der Form (n_samples, n_features_new)

Transformiertes Array.

get_feature_names_out(input_features=None)[Quelle]#

Holt die Ausgabemerkmale für die Transformation.

Die Feature-Namen werden mit dem kleingeschriebenen Klassennamen präfixiert. Wenn der Transformer z.B. 3 Features ausgibt, dann sind die Feature-Namen: ["klassenname0", "klassenname1", "klassenname2"].

Parameter:
input_featuresarray-like von str oder None, default=None

Wird nur verwendet, um die Feature-Namen mit den in fit gesehenen Namen zu validieren.

Gibt zurück:
feature_names_outndarray von str-Objekten

Transformierte Merkmalnamen.

get_metadata_routing()[Quelle]#

Holt das Metadaten-Routing dieses Objekts.

Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.

Gibt zurück:
routingMetadataRequest

Ein MetadataRequest, der Routing-Informationen kapselt.

get_params(deep=True)[Quelle]#

Holt Parameter für diesen Schätzer.

Parameter:
deepbool, default=True

Wenn True, werden die Parameter für diesen Schätzer und die enthaltenen Unterobjekte, die Schätzer sind, zurückgegeben.

Gibt zurück:
paramsdict

Parameternamen, zugeordnet ihren Werten.

inverse_transform(X)[Quelle]#

Daten zurück in ihren ursprünglichen Raum transformieren.

Parameter:
Xarray-ähnlich von der Form (n_samples, n_components)

Zu transformierende Daten. Muss die gleiche Anzahl von Komponenten wie die zum Trainieren des Modells verwendeten Daten haben.

Gibt zurück:
X_originalndarray von der Form (n_samples, n_features)

Transformierte Daten.

set_output(*, transform=None)[Quelle]#

Ausgabecontainer festlegen.

Siehe Einführung in die set_output API für ein Beispiel zur Verwendung der API.

Parameter:
transform{“default”, “pandas”, “polars”}, default=None

Konfiguriert die Ausgabe von transform und fit_transform.

  • "default": Standardausgabeformat eines Transformers

  • "pandas": DataFrame-Ausgabe

  • "polars": Polars-Ausgabe

  • None: Die Transformationskonfiguration bleibt unverändert

Hinzugefügt in Version 1.4: Die Option "polars" wurde hinzugefügt.

Gibt zurück:
selfestimator instance

Schätzer-Instanz.

set_params(**params)[Quelle]#

Setzt die Parameter dieses Schätzers.

Die Methode funktioniert sowohl bei einfachen Schätzern als auch bei verschachtelten Objekten (wie Pipeline). Letztere haben Parameter der Form <component>__<parameter>, so dass es möglich ist, jede Komponente eines verschachtelten Objekts zu aktualisieren.

Parameter:
**paramsdict

Schätzer-Parameter.

Gibt zurück:
selfestimator instance

Schätzer-Instanz.

transform(X, y=None)[Quelle]#

Kodiert die Daten als spärliche Kombination der Dictionary-Atome.

Die Kodierungsmethode wird durch den Objektparameter transform_algorithm bestimmt.

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

Trainingsvektor, wobei n_samples die Anzahl der Stichproben und n_features die Anzahl der Merkmale ist.

yIgnoriert

Wird nicht verwendet, ist aber aus Gründen der API-Konsistenz per Konvention vorhanden.

Gibt zurück:
X_newndarray der Form (n_samples, n_components)

Transformierte Daten.