SpectralEmbedding#
- class sklearn.manifold.SpectralEmbedding(n_components=2, *, affinity='nearest_neighbors', gamma=None, random_state=None, eigen_solver=None, eigen_tol='auto', n_neighbors=None, n_jobs=None)[source]#
Spektrale Einbettung für nichtlineare Dimensionsreduktion.
Bildet eine durch die angegebene Funktion gegebene Affinitätsmatrix und wendet eine spektrale Zerlegung auf den entsprechenden Graph-Laplacian an. Die resultierende Transformation wird durch den Wert der Eigenvektoren für jeden Datenpunkt gegeben.
Hinweis: Laplacian Eigenmaps ist der tatsächlich implementierte Algorithmus.
Weitere Informationen finden Sie im Benutzerhandbuch.
- Parameter:
- n_componentsint, Standard=2
Die Dimension des projizierten Unterraums.
- affinity{‘nearest_neighbors’, ‘rbf’, ‘precomputed’, ‘precomputed_nearest_neighbors’} oder aufrufbar, Standard=’nearest_neighbors’
- Wie die Affinitätsmatrix konstruiert werden soll.
‘nearest_neighbors’ : Konstruiert die Affinitätsmatrix durch Berechnung eines Graphen der nächsten Nachbarn.
‘rbf’ : Konstruiert die Affinitätsmatrix durch Berechnung eines radialen Basisfunktionskerns (RBF).
‘precomputed’ : Interpretiert
Xals eine vorab berechnete Affinitätsmatrix.‘precomputed_nearest_neighbors’ : Interpretiert
Xals einen dünnen Graphen von vorab berechneten nächsten Nachbarn und konstruiert die Affinitätsmatrix, indem dien_neighborsnächsten Nachbarn ausgewählt werden.callable : Verwendet die übergebene Funktion als Affinität. Die Funktion nimmt eine Datenmatrix (n_samples, n_features) entgegen und gibt eine Affinitätsmatrix (n_samples, n_samples) zurück.
- gammafloat, Standard=None
Kernkoeffizient für den RBF-Kern. Wenn None, wird gamma auf 1/n_features gesetzt.
- random_stateint, RandomState-Instanz oder None, default=None
Ein pseudo-zufälliger Zahlen-Generator, der zur Initialisierung der lobpcg-Eigenvektor-Zerlegung verwendet wird, wenn
eigen_solver == 'amg', und zur K-Means-Initialisierung. Verwenden Sie eine Ganzzahl, um die Ergebnisse über Aufrufe hinweg deterministisch zu machen (siehe Glossar).Hinweis
Bei Verwendung von
eigen_solver == 'amg'ist es notwendig, auch den globalen Numpy-Seed mitnp.random.seed(int)festzulegen, um deterministische Ergebnisse zu erzielen. Siehe pyamg/pyamg#139 für weitere Informationen.- eigen_solver{‘arpack’, ‘lobpcg’, ‘amg’}, default=None
Die Strategie zur Eigenwertzerlegung, die verwendet werden soll. AMG erfordert die Installation von pyamg. Es kann bei sehr großen, dünnen Problemen schneller sein. Wenn None, dann wird
'arpack'verwendet.- eigen_tolfloat, default=”auto”
Stoppkriterium für die Eigenwertzerlegung der Laplaceschen Matrix. Wenn
eigen_tol="auto"dann hängt die übergebene Toleranz vomeigen_solverab.Wenn
eigen_solver="arpack", dann isteigen_tol=0.0;Wenn
eigen_solver="lobpcg"odereigen_solver="amg", dann isteigen_tol=None, was den zugrunde liegendenlobpcg-Solver so konfiguriert, dass der Wert gemäß seinen Heuristiken automatisch aufgelöst wird. Siehescipy.sparse.linalg.lobpcgfür Details.
Beachten Sie, dass bei Verwendung von
eigen_solver="lobpcg"odereigen_solver="amg"Werte vontol<1e-5zu Konvergenzproblemen führen können und vermieden werden sollten.Hinzugefügt in Version 1.2.
- n_neighborsint, Standard=None
Anzahl der nächsten Nachbarn für den Aufbau des nearest_neighbors-Graphen. Wenn None, wird n_neighbors auf max(n_samples/10, 1) gesetzt.
- n_jobsint, default=None
Die Anzahl der parallelen Jobs, die ausgeführt werden sollen.
Nonebedeutet 1, es sei denn, Sie befinden sich in einemjoblib.parallel_backend-Kontext.-1bedeutet die Verwendung aller Prozessoren. Siehe Glossar für weitere Details.
- Attribute:
- embedding_ndarray der Form (n_samples, n_components)
Spektrale Einbettung der Trainingsmatrix.
- affinity_matrix_ndarray der Form (n_samples, n_samples)
Aus Samples konstruierte oder vorab berechnete Affinitätsmatrix.
- 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
XMerkmalnamen hat, die alle Zeichenketten sind.Hinzugefügt in Version 1.0.
- n_neighbors_int
Effektiv verwendete Anzahl von nächsten Nachbarn.
Siehe auch
IsomapNichtlineare Dimensionsreduktion durch Isometrische Abbildung.
Referenzen
Ein Tutorial zur spektralen Clusterbildung, 2007 Ulrike von Luxburg
Normalisierte Schnitte und Bildsegmentierung, 2000 Jianbo Shi, Jitendra Malik
Beispiele
>>> from sklearn.datasets import load_digits >>> from sklearn.manifold import SpectralEmbedding >>> X, _ = load_digits(return_X_y=True) >>> X.shape (1797, 64) >>> embedding = SpectralEmbedding(n_components=2) >>> X_transformed = embedding.fit_transform(X[:100]) >>> X_transformed.shape (100, 2)
- fit(X, y=None)[source]#
Passt das Modell anhand von Daten in X an.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Trainingsvektor, wobei
n_samplesdie Anzahl der Stichproben undn_featuresdie Anzahl der Merkmale ist.Wenn affinity „precomputed“ ist X : {array-like, sparse matrix}, Form (n_samples, n_samples), Interpretiert X als eine vorab berechnete Adjazenzgraph, die aus Samples berechnet wurde.
- 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)[source]#
Passt das Modell anhand von Daten in X an und transformiert X.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Trainingsvektor, wobei
n_samplesdie Anzahl der Stichproben undn_featuresdie Anzahl der Merkmale ist.Wenn affinity „precomputed“ ist X : {array-like, sparse matrix} der Form (n_samples, n_samples), Interpretiert X als eine vorab berechnete Adjazenzgraph, die aus Samples berechnet wurde.
- yIgnoriert
Wird nicht verwendet, ist aber aus Gründen der API-Konsistenz per Konvention vorhanden.
- Gibt zurück:
- X_newarray-like der Form (n_samples, n_components)
Spektrale Einbettung der Trainingsmatrix.
- get_metadata_routing()[source]#
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)[source]#
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.
- set_params(**params)[source]#
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.
Galeriebeispiele#
Verschiedenes Agglomeratives Clustering auf einer 2D-Einbettung von Ziffern
Manifold Learning auf handschriftlichen Ziffern: Locally Linear Embedding, Isomap…
Manifold Learning Methoden auf einer abgetrennten Sphäre