affinity_propagation#

sklearn.cluster.affinity_propagation(S, *, preference=None, convergence_iter=15, max_iter=200, damping=0.5, copy=True, verbose=False, return_n_iter=False, random_state=None)[Quelle]#

Führt Affinity Propagation Clustering von Daten durch.

Mehr dazu im Benutzerhandbuch.

Parameter:
Sarray-like von Form (n_samples, n_samples)

Matrix der Ähnlichkeiten zwischen Punkten.

preferencearray-like von Form (n_samples,) oder float, Standard=None

Präferenzen für jeden Punkt - Punkte mit größeren Präferenzwerten werden eher als Exemplare ausgewählt. Die Anzahl der Exemplare, d.h. der Cluster, wird durch den Wert der eingegebenen Präferenzen beeinflusst. Wenn die Präferenzen nicht als Argumente übergeben werden, werden sie auf den Median der eingegebenen Ähnlichkeiten gesetzt (was zu einer moderaten Anzahl von Clustern führt). Für eine geringere Anzahl von Clustern kann dies auf den Minimalwert der Ähnlichkeiten gesetzt werden.

convergence_iterint, Standard=15

Anzahl der Iterationen ohne Änderung der Anzahl der geschätzten Cluster, die die Konvergenz stoppt.

max_iterint, Standard=200

Maximale Anzahl von Iterationen.

dampingfloat, Standard=0.5

Dämpfungsfaktor zwischen 0,5 und 1.

copybool, Standard=True

Wenn copy False ist, wird die Ähnlichkeitsmatrix aus Speichergründen inplace vom Algorithmus modifiziert.

verbosebool, default=False

Die Ausführlichkeitsstufe.

return_n_iterbool, Standard=False

Ob die Anzahl der Iterationen zurückgegeben werden soll oder nicht.

random_stateint, RandomState-Instanz oder None, default=None

Pseudo-Zufallszahlengenerator zur Steuerung des Anfangszustands. Verwenden Sie eine Ganzzahl für reproduzierbare Ergebnisse über Funktionsaufrufe hinweg. Siehe das Glossar.

Hinzugefügt in Version 0.23: dieser Parameter war zuvor fest auf 0 gesetzt.

Gibt zurück:
cluster_centers_indicesndarray von Form (n_clusters,)

Index der Clusterzentren.

labelsndarray der Form (n_samples,)

Cluster-Labels für jeden Punkt.

n_iterint

Anzahl der durchgeführten Iterationen. Wird nur zurückgegeben, wenn return_n_iter auf True gesetzt ist.

Anmerkungen

Ein Beispiel für die Verwendung finden Sie unter Demo des Affinity Propagation Clustering-Algorithmus. Sie können auch Visualisierung der Aktienmarktstruktur.

Wenn der Algorithmus nicht konvergiert, gibt er immer noch ein Array von cluster_center_indices und Labels zurück, wenn Exemplare/Cluster vorhanden sind. Diese können jedoch degeneriert sein und sollten mit Vorsicht verwendet werden.

Wenn alle Trainingsbeispiele gleiche Ähnlichkeiten und gleiche Präferenzen haben, hängt die Zuweisung von Clusterzentren und Labels von der Präferenz ab. Wenn die Präferenz kleiner als die Ähnlichkeiten ist, wird ein einzelnes Clusterzentrum und das Label 0 für jedes Sample zurückgegeben. Andernfalls wird jedes Trainingssample zum eigenen Clusterzentrum und erhält ein eindeutiges Label.

Referenzen

Brendan J. Frey und Delbert Dueck, „Clustering by Passing Messages Between Data Points“, Science Feb. 2007

Beispiele

>>> import numpy as np
>>> from sklearn.cluster import affinity_propagation
>>> from sklearn.metrics.pairwise import euclidean_distances
>>> X = np.array([[1, 2], [1, 4], [1, 0],
...               [4, 2], [4, 4], [4, 0]])
>>> S = -euclidean_distances(X, squared=True)
>>> cluster_centers_indices, labels = affinity_propagation(S, random_state=0)
>>> cluster_centers_indices
array([0, 3])
>>> labels
array([0, 0, 0, 1, 1, 1])