Isomap#
- class sklearn.manifold.Isomap(*, n_neighbors=5, radius=None, n_components=2, eigen_solver='auto', tol=0, max_iter=None, path_method='auto', neighbors_algorithm='auto', n_jobs=None, metric='minkowski', p=2, metric_params=None)[Quelle]#
Isomap Einbettung.
Nichtlineare Dimensionsreduktion durch Isometric Mapping
Lesen Sie mehr im Benutzerhandbuch.
- Parameter:
- n_neighborsint oder None, Standard=5
Anzahl der für jeden Punkt zu berücksichtigenden Nachbarn. Wenn
n_neighborsein int ist, mussradiusNonesein.- radiusfloat oder None, Standard=None
Begrenzender Abstand der zurückzugebenden Nachbarn. Wenn
radiusein float ist, mussn_neighborsaufNonegesetzt werden.Hinzugefügt in Version 1.1.
- n_componentsint, Standard=2
Anzahl der Koordinaten für die Mannigfaltigkeit.
- eigen_solver{‘auto’, ‘arpack’, ‘dense’}, Standard=’auto’
‘auto’ : Versuch, den effizientesten Solver für das gegebene Problem zu wählen.
‘arpack’ : Arnoldi-Zerlegung zur Ermittlung der Eigenwerte und Eigenvektoren verwenden.
‘dense’ : Direkten Solver (d. h. LAPACK) für die Eigenwertzerlegung verwenden.
- tolfloat, Standard=0
Konvergenztoleranz, die an arpack oder lobpcg übergeben wird. Wird nicht verwendet, wenn eigen_solver == ‘dense’.
- max_iterint, Standard=None
Maximale Anzahl von Iterationen für den arpack-Solver. Wird nicht verwendet, wenn eigen_solver == ‘dense’.
- path_method{‘auto’, ‘FW’, ‘D’}, Standard=’auto’
Methode zur Bestimmung des kürzesten Pfades.
‘auto’ : Versuch, den besten Algorithmus automatisch zu wählen.
‘FW’ : Floyd-Warshall-Algorithmus.
‘D’ : Dijkstra-Algorithmus.
- neighbors_algorithm{‘auto’, ‘brute’, ‘kd_tree’, ‘ball_tree’}, Standard=’auto’
Algorithmus für die Suche nach nächsten Nachbarn, übergeben an die Instanz von neighbors.NearestNeighbors.
- n_jobsint oder None, 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.- metricstr oder aufrufbar, Standard="minkowski"
Die Metrik, die zur Berechnung der Distanz zwischen Instanzen in einem Merkmalsarray verwendet wird. Wenn metric ein String oder aufrufbar ist, muss es eine der Optionen sein, die von
sklearn.metrics.pairwise_distancesfür seinen Metrikparameter zugelassen werden. Wenn metric “precomputed” ist, wird davon ausgegangen, dass X eine Distanzmatrix ist und quadratisch sein muss. X kann ein Glossar sein.Hinzugefügt in Version 0.22.
- pfloat, Standard=2
Parameter für die Minkowski-Metrik von sklearn.metrics.pairwise.pairwise_distances. Bei p = 1 ist dies äquivalent zur Verwendung der Manhattan-Distanz (l1) und bei p = 2 der euklidischen Distanz. Für ein beliebiges p wird die Minkowski-Distanz (l_p) verwendet.
Hinzugefügt in Version 0.22.
- metric_paramsdict, Standard=None
Zusätzliche Schlüsselwortargumente für die Metrikfunktion.
Hinzugefügt in Version 0.22.
- Attribute:
- embedding_array-ähnlich, Form (n_samples, n_components)
Speichert die Einbettungsvektoren.
- kernel_pca_Objekt
KernelPCA-Objekt, das zur Implementierung der Einbettung verwendet wird.- nbrs_Instanz von sklearn.neighbors.NearestNeighbors
Speichert die Instanz der nächsten Nachbarn, einschließlich BallTree oder KDtree, falls zutreffend.
- dist_matrix_array-ähnlich, Form (n_samples, n_samples)
Speichert die geodätische Distanzmatrix der Trainingsdaten.
- 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.
Siehe auch
sklearn.decomposition.PCAHauptkomponentenanalyse, eine lineare Dimensionsreduktionsmethode.
sklearn.decomposition.KernelPCANichtlineare Dimensionsreduktion unter Verwendung von Kernels und PCA.
MDSMannigfaltigkeitslernen mit Multidimensional Scaling.
TSNET-distributed Stochastic Neighbor Embedding.
LocallyLinearEmbeddingMannigfaltigkeitslernen mit Locally Linear Embedding.
SpectralEmbeddingSpektrale Einbettung für nichtlineare Dimension.
Referenzen
[1]Tenenbaum, J.B.; De Silva, V.; & Langford, J.C. Ein globales geometrisches Framework für nichtlineare Dimensionsreduktion. Science 290 (5500)
Beispiele
>>> from sklearn.datasets import load_digits >>> from sklearn.manifold import Isomap >>> X, _ = load_digits(return_X_y=True) >>> X.shape (1797, 64) >>> embedding = Isomap(n_components=2) >>> X_transformed = embedding.fit_transform(X[:100]) >>> X_transformed.shape (100, 2)
- fit(X, y=None)[Quelle]#
Berechnet die Einbettungsvektoren für die Daten X.
- Parameter:
- X{array-like, sparse matrix, BallTree, KDTree, NearestNeighbors}
Stichprobendaten, Form = (n_samples, n_features), in Form eines numpy-Arrays, einer sparse matrix, eines vorab berechneten Baumes oder eines NearestNeighbors-Objekts.
- yIgnoriert
Wird nicht verwendet, ist aber aus Gründen der API-Konsistenz per Konvention vorhanden.
- Gibt zurück:
- selfobject
Gibt eine angepasste Instanz von self zurück.
- fit_transform(X, y=None)[Quelle]#
Passt das Modell anhand von Daten in X an und transformiert X.
- Parameter:
- X{array-like, sparse matrix, BallTree, KDTree}
Trainingsvektor, wobei
n_samplesdie Anzahl der Stichproben undn_featuresdie Anzahl der Merkmale ist.- yIgnoriert
Wird nicht verwendet, ist aber aus Gründen der API-Konsistenz per Konvention vorhanden.
- Gibt zurück:
- X_newarray-ähnlich, Form (n_samples, n_components)
X transformiert in den neuen Raum.
- 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
fitgesehenen 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.
- reconstruction_error()[Quelle]#
Berechnet den Rekonstruktionsfehler für die Einbettung.
- Gibt zurück:
- reconstruction_errorfloat
Rekonstruktionsfehler.
Anmerkungen
Die Kostenfunktion einer Isomap-Einbettung ist
E = frobenius_norm[K(D) - K(D_fit)] / n_samplesWobei D die Distanzmatrix für die Eingabedaten X ist, D_fit die Distanzmatrix für die Ausgabeeinbettung X_fit ist und K der Isomap-Kernel ist
K(D) = -0.5 * (I - 1/n_samples) * D^2 * (I - 1/n_samples)
- 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
transformundfit_transform."default": Standardausgabeformat eines Transformers"pandas": DataFrame-Ausgabe"polars": Polars-AusgabeNone: 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)[Quelle]#
Transformiert X.
Dies wird implementiert, indem die Punkte X mit dem Graphen der geodätischen Distanzen der Trainingsdaten verbunden werden. Zuerst werden die
n_neighborsnächsten Nachbarn von X in den Trainingsdaten gefunden, und daraus werden die kürzesten geodätischen Distanzen von jedem Punkt in X zu jedem Punkt in den Trainingsdaten berechnet, um den Kernel zu konstruieren. Die Einbettung von X ist die Projektion dieses Kernels auf die Einbettungsvektoren des Trainingssets.- Parameter:
- X{array-like, sparse matrix}, Form (n_queries, n_features)
Wenn neighbors_algorithm=’precomputed’, wird davon ausgegangen, dass X eine Distanzmatrix oder ein dünner Graph der Form (n_queries, n_samples_fit) ist.
- Gibt zurück:
- X_newarray-ähnlich, Form (n_queries, n_components)
X transformiert in den neuen Raum.
Galeriebeispiele#
Manifold Learning auf handschriftlichen Ziffern: Locally Linear Embedding, Isomap…
Manifold Learning Methoden auf einer abgetrennten Sphäre