MDS#
- class sklearn.manifold.MDS(n_components=2, *, metric_mds=True, n_init='warn', init='warn', max_iter=300, verbose=0, eps=1e-06, n_jobs=None, random_state=None, dissimilarity='deprecated', metric='euclidean', metric_params=None, normalized_stress='auto')[Quelle]#
Multidimensionales Scaling.
Lesen Sie mehr im Benutzerhandbuch.
- Parameter:
- n_componentsint, Standard=2
Anzahl der Dimensionen, in die die Unähnlichkeiten eingetaucht werden sollen.
- metric_mdsbool, Standard=True
Wenn
True, wird metrisches MDS durchgeführt; andernfalls nicht-metrisches MDS. WennFalse(d.h. nicht-metrisches MDS), werden Unähnlichkeiten von 0 als fehlende Werte betrachtet.Geändert in Version 1.8: Der Parameter
metricwurde inmetric_mdsumbenannt.- n_initint, Standard=4
Anzahl der Durchläufe des SMACOF-Algorithmus mit unterschiedlichen Initialisierungen. Die Endergebnisse sind die besten Ausgaben der Durchläufe, bestimmt durch den Durchlauf mit der kleinsten endgültigen Stress.
Geändert in Version 1.9: Der Standardwert für
n_initändert sich in Version 1.9 von 4 auf 1.- init{‘random’, ‘classical_mds’}, Standard=’random’
Der Initialisierungsansatz. Wenn
random, wird eine zufällige Initialisierung verwendet. Wennclassical_mds, wird klassisches MDS ausgeführt und als Initialisierung für MDS verwendet (in diesem Fall wird der Wert vonn_initignoriert).Hinzugefügt in Version 1.8.
Geändert in Version 1.10: Der Standardwert für
initwirdclassical_mdssein.- max_iterint, Standard=300
Maximale Anzahl von Iterationen des SMACOF-Algorithmus für einen einzelnen Durchlauf.
- verboseint, default=0
Ausführlichkeitsgrad.
- epsfloat, Standard=1e-6
Die Toleranz in Bezug auf die Stress (normiert durch die Summe der quadrierten Einbettungsabstände), bei der die Konvergenz erklärt wird.
Geändert in Version 1.7: Der Standardwert für
epshat sich von 1e-3 auf 1e-6 geändert, als Ergebnis einer Fehlerbehebung bei der Berechnung des Konvergenzkriteriums.- n_jobsint, default=None
Die Anzahl der Jobs, die für die Berechnung verwendet werden. Wenn mehrere Initialisierungen verwendet werden (
n_init), wird jeder Durchlauf des Algorithmus parallel berechnet.Nonebedeutet 1, außer in einemjoblib.parallel_backendKontext.-1bedeutet die Verwendung aller Prozessoren. Siehe Glossar für weitere Details.- random_stateint, RandomState-Instanz oder None, default=None
Bestimmt den Zufallszahlengenerator, der zur Initialisierung der Zentren verwendet wird. Übergeben Sie eine Ganzzahl für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg. Siehe Glossar.
- dissimilarity{‘euclidean’, ‘precomputed’}
Maß für die Unähnlichkeit, das verwendet werden soll
- ‘euclidean’
Paarweise Euklidische Abstände zwischen Punkten im Datensatz.
- ‘precomputed’
Vorberechnete Unähnlichkeiten werden direkt an
fitundfit_transformübergeben.
Veraltet seit Version 1.8:
dissimilaritywurde in Version 1.8 inmetricumbenannt und wird in Version 1.10 entfernt.- metricstr oder callable, Standard=’euclidean’
Metrik zur Berechnung der Unähnlichkeit. Standard ist „euclidean“.
Wenn metrik eine Zeichenkette ist, muss sie eine der Optionen sein, die von
scipy.spatial.distance.pdistfür ihren metrischen Parameter erlaubt sind, oder eine Metrik, die insklearn.metrics.pairwise.distance_metricsaufgeführt istWenn metrik „precomputed“ ist, wird X als Distanzmatrix angenommen und muss während fit quadratisch sein.
Wenn metric eine aufrufbare Funktion ist, nimmt sie zwei Arrays entgegen, die 1D-Vektoren darstellen, und muss einen Wert zurückgeben, der die Entfernung zwischen diesen Vektoren angibt. Dies funktioniert für Scipys Metriken, ist aber weniger effizient als die Übergabe des Metriknamens als String.
Geändert in Version 1.8: Vor Version 1.8 wurde
metric=True/Falsezur Auswahl von metrischem/nicht-metrischem MDS verwendet, was nun die Rolle vonmetric_mdsist. Die Unterstützung fürTrueundFalsewird in Version 1.10 eingestellt, verwenden Sie stattdessenmetric_mds.- metric_paramsdict, Standard=None
Zusätzliche Schlüsselwortargumente für die Unähnlichkeitsberechnung.
Hinzugefügt in Version 1.8.
- normalized_stressbool oder „auto“, Standard=„auto“
Ob der normierte Stresswert (Stress-1) anstelle des rohen Stresses zurückgegeben werden soll. Standardmäßig gibt metrisches MDS den rohen Stress zurück, während nicht-metrisches MDS den normierten Stress zurückgibt.
Hinzugefügt in Version 1.2.
Geändert in Version 1.4: Der Standardwert hat sich in Version 1.4 von
Falseauf"auto"geändert.Geändert in Version 1.7: Normierter Stress wird jetzt auch für metrisches MDS unterstützt.
- Attribute:
- embedding_ndarray der Form (n_samples, n_components)
Speichert die Position des Datensatzes im Einbettungsraum.
- stress_float
Der Endwert des Stresses (Summe der quadrierten Distanz der Disparitäten und der Distanzen für alle eingeschränkten Punkte). Wenn
normalized_stress=True, wird Stress-1 zurückgegeben. Ein Wert von 0 zeigt eine „perfekte“ Anpassung an, 0,025 ausgezeichnet, 0,05 gut, 0,1 fair und 0,2 schlecht [1].- dissimilarity_matrix_ndarray der Form (n_samples, n_samples)
Paarweise Unähnlichkeiten zwischen den Punkten. Symmetrische Matrix, die
entweder eine benutzerdefinierte Unähnlichkeitsmatrix verwendet, indem
dissimilarityauf „precomputed“ gesetzt wird;oder eine Unähnlichkeitsmatrix aus Daten unter Verwendung Euklidischer Abstände konstruiert.
- 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_iter_int
Die Anzahl der Iterationen, die dem besten Stress entsprechen.
Siehe auch
sklearn.decomposition.PCAHauptkomponentenanalyse, eine lineare Dimensionsreduktionsmethode.
sklearn.decomposition.KernelPCANichtlineare Dimensionsreduktion unter Verwendung von Kernels und PCA.
TSNET-distributed Stochastic Neighbor Embedding.
IsomapManifold Learning basierend auf Isometric Mapping.
LocallyLinearEmbeddingMannigfaltigkeitslernen mit Locally Linear Embedding.
SpectralEmbeddingSpektrale Einbettung für nichtlineare Dimension.
Referenzen
[1]„Nonmetric multidimensional scaling: a numerical method“ Kruskal, J. Psychometrika, 29 (1964)
[2]„Multidimensional scaling by optimizing goodness of fit to a nonmetric hypothesis“ Kruskal, J. Psychometrika, 29, (1964)
[3]„Modern Multidimensional Scaling - Theory and Applications“ Borg, I.; Groenen P. Springer Series in Statistics (1997)
Beispiele
>>> from sklearn.datasets import load_digits >>> from sklearn.manifold import MDS >>> X, _ = load_digits(return_X_y=True) >>> X.shape (1797, 64) >>> embedding = MDS(n_components=2, n_init=1, init="random") >>> X_transformed = embedding.fit_transform(X[:100]) >>> X_transformed.shape (100, 2)
Für ein detaillierteres Anwendungsbeispiel siehe Mehrdimensionale Skalierung.
Für einen Vergleich von Manifold-Learning-Techniken siehe Vergleich von Manifold-Learning-Methoden.
- fit(X, y=None, init=None)[Quelle]#
Berechnet die Position der Punkte im Einbettungsraum.
- Parameter:
- Xarray-ähnlich der Form (n_samples, n_features) oder (n_samples, n_samples)
Eingabedaten. Wenn
metric=='precomputed', sollte die Eingabe die Unähnlichkeitsmatrix sein.- yIgnoriert
Wird nicht verwendet, ist aber aus Gründen der API-Konsistenz per Konvention vorhanden.
- initndarray der Form (n_samples, n_components), Standard=None
Startkonfiguration der Einbettung zur Initialisierung des SMACOF-Algorithmus. Standardmäßig wird der Algorithmus mit einem zufällig gewählten Array initialisiert.
- Gibt zurück:
- selfobject
Angepasster Schätzer.
- fit_transform(X, y=None, init=None)[Quelle]#
Passt die Daten von
Xan und gibt die eingebetteten Koordinaten zurück.- Parameter:
- Xarray-ähnlich der Form (n_samples, n_features) oder (n_samples, n_samples)
Eingabedaten. Wenn
metric=='precomputed', sollte die Eingabe die Unähnlichkeitsmatrix sein.- yIgnoriert
Wird nicht verwendet, ist aber aus Gründen der API-Konsistenz per Konvention vorhanden.
- initndarray der Form (n_samples, n_components), Standard=None
Startkonfiguration der Einbettung zur Initialisierung des SMACOF-Algorithmus. Standardmäßig wird der Algorithmus mit einem zufällig gewählten Array initialisiert.
- Gibt zurück:
- X_newndarray der Form (n_samples, n_components)
X transformiert in den neuen Raum.
- 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.
- set_fit_request(*, init: bool | None | str = '$UNCHANGED$') MDS[Quelle]#
Konfiguriert, ob Metadaten für die
fit-Methode angefordert werden sollen.Beachten Sie, dass diese Methode nur relevant ist, wenn dieser Schätzer als Unter-Schätzer innerhalb eines Meta-Schätzers verwendet wird und Metadaten-Routing mit
enable_metadata_routing=Trueaktiviert ist (siehesklearn.set_config). Bitte lesen Sie das Benutzerhandbuch, um zu erfahren, wie der Routing-Mechanismus funktioniert.Die Optionen für jeden Parameter sind
True: Metadaten werden angefordert und, falls vorhanden, anfitübergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht anfit.None: Metadaten werden nicht angefordert und der Meta-Schätzer löst einen Fehler aus, wenn der Benutzer sie bereitstellt.str: Metadaten sollten mit diesem Alias an den Meta-Schätzer übergeben werden und nicht mit dem ursprünglichen Namen.
Der Standardwert (
sklearn.utils.metadata_routing.UNCHANGED) behält die bestehende Anforderung bei. Dies ermöglicht es Ihnen, die Anforderung für einige Parameter zu ändern und für andere nicht.Hinzugefügt in Version 1.3.
- Parameter:
- initstr, True, False, oder None, Standard=sklearn.utils.metadata_routing.UNCHANGED
Metadaten-Routing für den Parameter
initinfit.
- Gibt zurück:
- selfobject
Das aktualisierte Objekt.
- 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.
Galeriebeispiele#
Manifold Learning auf handschriftlichen Ziffern: Locally Linear Embedding, Isomap…
Manifold Learning Methoden auf einer abgetrennten Sphäre