compute_optics_graph#

sklearn.cluster.compute_optics_graph(X, *, min_samples, max_eps, metric, p, metric_params, algorithm, leaf_size, n_jobs)[Quelle]#

Berechnet den OPTICS-Erreichbarkeitsgraphen.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
X{ndarray, sparse matrix} von Form (n_samples, n_features) oder (n_samples, n_samples), wenn metric=’precomputed’

Ein Feature-Array oder Array von Distanzen zwischen Stichproben, wenn metric=’precomputed’.

min_samplesint > 1 oder float zwischen 0 und 1

Die Anzahl der Stichproben in einer Nachbarschaft, damit ein Punkt als Kernpunkt betrachtet wird. Ausgedrückt als absolute Zahl oder als Bruchteil der Anzahl der Stichproben (auf mindestens 2 gerundet).

max_epsfloat, standardwert=np.inf

Die maximale Entfernung zwischen zwei Stichproben, damit eine als Nachbar einer anderen betrachtet wird. Der Standardwert von np.inf identifiziert Cluster über alle Skalen hinweg; eine Reduzierung von max_eps führt zu kürzeren Laufzeiten.

metricstr oder aufrufbar, Standard=’minkowski’

Metrik, die für die Distanzberechnung verwendet werden soll. Jede Metrik von scikit-learn oder scipy.spatial.distance kann verwendet werden.

Wenn metric eine aufrufbare Funktion ist, wird sie für jedes Paar von Instanzen (Zeilen) aufgerufen und der resultierende Wert aufgezeichnet. Die aufrufbare Funktion sollte zwei Arrays als Eingabe nehmen und einen Wert zurückgeben, der die Distanz zwischen ihnen angibt. Dies funktioniert für Scipys Metriken, ist aber weniger effizient als die Übergabe des Metriknamens als String. Wenn metric „precomputed“ ist, wird davon ausgegangen, dass X eine Distanzmatrix ist und quadratisch sein muss.

Gültige Werte für metric sind

  • von scikit-learn: [‚cityblock‘, ‚cosine‘, ‚euclidean‘, ‚l1‘, ‚l2‘, ‚manhattan‘]

  • von scipy.spatial.distance: [‚braycurtis‘, ‚canberra‘, ‚chebyshev‘, ‚correlation‘, ‚dice‘, ‚hamming‘, ‚jaccard‘, ‚kulsinski‘, ‚mahalanobis‘, ‚minkowski‘, ‚rogerstanimoto‘, ‚russellrao‘, ‚seuclidean‘, ‚sokalmichener‘, ‚sokalsneath‘, ‚sqeuclidean‘, ‚yule‘]

Siehe die Dokumentation für scipy.spatial.distance für Details zu diesen Metriken.

Hinweis

'kulsinski' ist seit SciPy 1.9 veraltet und wird in SciPy 1.11 entfernt.

pfloat, Standard=2

Parameter für die Minkowski-Metrik von pairwise_distances. Wenn p = 1, ist dies äquivalent zur Verwendung der Manhattan-Distanz (l1) und der euklidischen Distanz (l2) für p = 2. Für ein beliebiges p wird die Minkowski-Distanz (l_p) verwendet.

metric_paramsdict, Standard=None

Zusätzliche Schlüsselwortargumente für die Metrikfunktion.

algorithm{‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}, Standard=’auto’

Algorithmus zur Berechnung der nächsten Nachbarn

  • ‚ball_tree‘ verwendet BallTree.

  • ‚kd_tree‘ verwendet KDTree.

  • ‘brute’ verwendet eine brute-force Suche.

  • ‚auto‘ versucht, den am besten geeigneten Algorithmus basierend auf den an die Methode fit übergebenen Werten zu bestimmen. (Standard)

Hinweis: Das Anpassen an dünnbesetzte Eingaben überschreibt die Einstellung dieses Parameters und verwendet brute force.

leaf_sizeint, Standard=30

Blattgröße, die an BallTree oder KDTree übergeben wird. Dies kann die Geschwindigkeit des Aufbaus und der Abfrage sowie den Speicher beeinflussen, der zum Speichern des Baumes benötigt wird. Der optimale Wert hängt von der Art des Problems ab.

n_jobsint, default=None

Die Anzahl der parallelen Jobs für die Nachbarsuche. None bedeutet 1, es sei denn, es befindet sich in einem joblib.parallel_backend Kontext. -1 bedeutet, alle Prozessoren zu verwenden. Siehe Glossar für weitere Details.

Gibt zurück:
ordering_Array der Form (n_samples,)

Die nach Clustern geordnete Liste der Stichprobenindizes.

core_distances_Array der Form (n_samples,)

Distanz, bei der jede Stichprobe zu einem Kernpunkt wird, indiziert nach Objektordnung. Punkte, die niemals ein Kernpunkt sein werden, haben eine Distanz von inf. Verwenden Sie clust.core_distances_[clust.ordering_], um im Cluster-Ordner zuzugreifen.

reachability_Array der Form (n_samples,)

Erreichbarkeitsdistanzen pro Stichprobe, indiziert nach Objektordnung. Verwenden Sie clust.reachability_[clust.ordering_], um im Cluster-Ordner zuzugreifen.

predecessor_Array der Form (n_samples,)

Punkt, von dem eine Stichprobe erreicht wurde, indiziert nach Objektordnung. Seed-Punkte haben einen Vorgänger von -1.

Referenzen

[1]

Ankerst, Mihael, Markus M. Breunig, Hans-Peter Kriegel und Jörg Sander. „OPTICS: ordering points to identify the clustering structure.“ ACM SIGMOD Record 28, Nr. 2 (1999): 49-60.

Beispiele

>>> import numpy as np
>>> from sklearn.cluster import compute_optics_graph
>>> X = np.array([[1, 2], [2, 5], [3, 6],
...               [8, 7], [8, 8], [7, 3]])
>>> ordering, core_distances, reachability, predecessor = compute_optics_graph(
...     X,
...     min_samples=2,
...     max_eps=np.inf,
...     metric="minkowski",
...     p=2,
...     metric_params=None,
...     algorithm="auto",
...     leaf_size=30,
...     n_jobs=None,
... )
>>> ordering
array([0, 1, 2, 5, 3, 4])
>>> core_distances
array([3.16, 1.41, 1.41, 1.        , 1.        ,
       4.12])
>>> reachability
array([       inf, 3.16, 1.41, 4.12, 1.        ,
       5.        ])
>>> predecessor
array([-1,  0,  1,  5,  3,  2])