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. Wenn False (d.h. nicht-metrisches MDS), werden Unähnlichkeiten von 0 als fehlende Werte betrachtet.

Geändert in Version 1.8: Der Parameter metric wurde in metric_mds umbenannt.

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. Wenn classical_mds, wird klassisches MDS ausgeführt und als Initialisierung für MDS verwendet (in diesem Fall wird der Wert von n_init ignoriert).

Hinzugefügt in Version 1.8.

Geändert in Version 1.10: Der Standardwert für init wird classical_mds sein.

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 eps hat 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.

None bedeutet 1, außer in einem joblib.parallel_backend Kontext. -1 bedeutet 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 fit und fit_transform übergeben.

Veraltet seit Version 1.8: dissimilarity wurde in Version 1.8 in metric umbenannt 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.pdist für ihren metrischen Parameter erlaubt sind, oder eine Metrik, die in sklearn.metrics.pairwise.distance_metrics aufgeführt ist

Wenn 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/False zur Auswahl von metrischem/nicht-metrischem MDS verwendet, was nun die Rolle von metric_mds ist. Die Unterstützung für True und False wird in Version 1.10 eingestellt, verwenden Sie stattdessen metric_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 False auf "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 dissimilarity auf „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 X Merkmalnamen 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.PCA

Hauptkomponentenanalyse, eine lineare Dimensionsreduktionsmethode.

sklearn.decomposition.KernelPCA

Nichtlineare Dimensionsreduktion unter Verwendung von Kernels und PCA.

TSNE

T-distributed Stochastic Neighbor Embedding.

Isomap

Manifold Learning basierend auf Isometric Mapping.

LocallyLinearEmbedding

Mannigfaltigkeitslernen mit Locally Linear Embedding.

SpectralEmbedding

Spektrale 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 X an 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=True aktiviert ist (siehe sklearn.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, an fit übergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.

  • False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht an fit.

  • 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 init in fit.

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.