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. WennNone, werden allen Beobachtungen gleiche Gewichte zugewiesen.sample_weightwird ignoriert, wenninitein 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])