kmeans_plusplus#

sklearn.cluster.kmeans_plusplus(X, n_clusters, *, sample_weight=None, x_squared_norms=None, random_state=None, n_local_trials=None)[Quelle]#

Initialisiert n_clusters-Seeds gemäß k-means++.

Hinzugefügt in Version 0.24.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Die Daten, aus denen die Keime (Zentren) ausgewählt werden sollen.

n_clustersint

Die Anzahl der zu initialisierenden Zentren.

sample_weightarray-like der Form (n_samples,), Standardwert=None

Die Gewichte für jede Beobachtung in X. Wenn None, werden allen Beobachtungen gleiche Gewichte zugewiesen. sample_weight wird ignoriert, wenn init ein aufrufbarer oder ein vom Benutzer bereitgestelltes Array ist.

Hinzugefügt in Version 1.3.

x_squared_normsarray-like von der Form (n_samples,), Standardwert=None

Quadrierte Euklidische Norm jedes Datenpunktes.

random_stateint oder RandomState-Instanz, Standardwert=None

Bestimmt die Zufallszahlengenerierung für die Zentreninitialisierung. Übergeben Sie eine Ganzzahl für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg. Siehe Glossar.

n_local_trialsint, Standardwert=None

Die Anzahl der Auswahlversuche für jedes Zentrum (außer dem ersten), wobei dasjenige, das die Trägheit am stärksten reduziert, gierig ausgewählt wird. Setzen Sie dies auf None, um die Anzahl der Versuche logarithmisch von der Anzahl der Samen abhängig zu machen (2+log(k)), was die empfohlene Einstellung ist. Ein Wert von 1 deaktiviert die gierige Zentrenauswahl und stellt den ursprünglichen k-means++-Algorithmus wieder her, dessen Leistung empirisch als schlechter als die seiner gierigen Variante eingestuft wurde.

Gibt zurück:
centersndarray von der Form (n_clusters, n_features)

Die initialen Zentren für k-means.

indicesndarray von der Form (n_clusters,)

Die Indexpositionen der ausgewählten Zentren im Datenarray X. Für einen gegebenen Index und ein gegebenes Zentrum gilt X[index] = center.

Anmerkungen

Wählt initiale Clusterzentren für die k-means-Clusterbildung auf intelligente Weise aus, um die Konvergenz zu beschleunigen. Siehe: Arthur, D. und Vassilvitskii, S. „k-means++: the advantages of careful seeding“. ACM-SIAM symposium on Discrete algorithms. 2007

Beispiele

>>> from sklearn.cluster import kmeans_plusplus
>>> import numpy as np
>>> X = np.array([[1, 2], [1, 4], [1, 0],
...               [10, 2], [10, 4], [10, 0]])
>>> centers, indices = kmeans_plusplus(X, n_clusters=2, random_state=0)
>>> centers
array([[10,  2],
       [ 1,  0]])
>>> indices
array([3, 2])