AffinityPropagation#

class sklearn.cluster.AffinityPropagation(*, damping=0.5, max_iter=200, convergence_iter=15, copy=True, preference=None, affinity='euclidean', verbose=False, random_state=None)[Quelle]#

Führt Affinity Propagation Clustering von Daten durch.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
dampingfloat, default=0.5

Dämpfungsfaktor im Bereich [0.5, 1.0) ist das Ausmaß, in dem der aktuelle Wert relativ zu eingehenden Werten (gewichteter 1 - Dämpfung) beibehalten wird. Dies dient zur Vermeidung numerischer Oszillationen bei der Aktualisierung dieser Werte (Nachrichten).

max_iterint, Standard=200

Maximale Anzahl von Iterationen.

convergence_iterint, default=15

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

copybool, Standard=True

Erstellt eine Kopie der Eingabedaten.

preferencearray-like of shape (n_samples,) oder float, default=None

Präferenzen für jeden Punkt – Punkte mit höheren Präferenzwerten werden eher als Exemplare ausgewählt. Die Anzahl der Exemplare, d. h. der Cluster, wird durch den eingegebenen Präferenzwert beeinflusst. Wenn die Präferenzen nicht als Argumente übergeben werden, werden sie als Median der Eingangsähnlichkeiten gesetzt.

affinity{‘euclidean’, ‘precomputed’}, default=’euclidean’

Welche Affinität verwendet werden soll. Derzeit werden 'precomputed' und euclidean unterstützt. 'euclidean' verwendet die negative quadrierte Euklidische Distanz zwischen den Punkten.

verbosebool, default=False

Ob die Ausgabe ausführlich sein soll.

random_stateint, RandomState-Instanz oder None, default=None

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

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

Attribute:
cluster_centers_indices_ndarray of shape (n_clusters,)

Indizes der Clusterzentren.

cluster_centers_ndarray von Form (n_clusters, n_features)

Clusterzentren (wenn affinity != precomputed).

labels_ndarray der Form (n_samples,)

Beschriftungen jedes Punkts.

affinity_matrix_ndarray of shape (n_samples, n_samples)

Speichert die Affinitätsmatrix, die in fit verwendet wird.

n_iter_int

Anzahl der Iterationen bis zur Konvergenz.

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.

Siehe auch

AgglomerativeClustering

Führt rekursiv die Zusammenführung des Paares von Clustern durch, das den gegebenen Linkage-Abstand minimal erhöht.

FeatureAgglomeration

Ähnlich wie AgglomerativeClustering, aber rekursiv werden Merkmale anstelle von Samples zusammengeführt.

KMeans

K-Means-Clustering.

MiniBatchKMeans

Mini-Batch K-Means-Clustering.

MeanShift

Mean Shift Clustering mit einem flachen Kernel.

SpectralClustering

Wendet Clustering auf eine Projektion des normalisierten Laplace-Operators an.

Anmerkungen

Die algorithmische Komplexität von Affinity Propagation ist quadratisch in der Anzahl der Punkte.

Wenn der Algorithmus nicht konvergiert, gibt er dennoch 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 fit nicht konvergiert, wird cluster_centers_ immer noch gefüllt, kann aber degeneriert sein. Gehen Sie in diesem Fall mit Vorsicht vor. Wenn fit nicht konvergiert und keine cluster_centers_ erzeugen kann, werden alle Samples von predict als -1 gekennzeichnet.

Wenn alle Trainingssamples 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, führt fit zu einem einzigen Clusterzentrum und Label 0 für jedes Sample. Andernfalls wird jedes Trainingssample zu seinem 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

>>> from sklearn.cluster import AffinityPropagation
>>> import numpy as np
>>> X = np.array([[1, 2], [1, 4], [1, 0],
...               [4, 2], [4, 4], [4, 0]])
>>> clustering = AffinityPropagation(random_state=5).fit(X)
>>> clustering
AffinityPropagation(random_state=5)
>>> clustering.labels_
array([0, 0, 0, 1, 1, 1])
>>> clustering.predict([[0, 0], [4, 4]])
array([0, 1])
>>> clustering.cluster_centers_
array([[1, 2],
       [4, 2]])

Ein Anwendungsbeispiel finden Sie unter Demo des Affinity Propagation Clustering Algorithmus.

Zum Vergleich von Affinity Propagation mit anderen Clustering-Algorithmen siehe Vergleich verschiedener Clustering-Algorithmen auf einfachen Datensätzen

fit(X, y=None)[Quelle]#

Clusterbildung aus Merkmalen oder Affinitätsmatrix anpassen.

Parameter:
X{array-like, sparse matrix} von shape (n_samples, n_features), oder array-like von shape (n_samples, n_samples)

Trainingsinstanzen zum Clustern oder Ähnlichkeiten / Affinitäten zwischen Instanzen, wenn affinity='precomputed'. Wenn eine spärliche Merkmalsmatrix bereitgestellt wird, wird sie in eine spärliche csr_matrix konvertiert.

yIgnoriert

Nicht verwendet, hier zur API-Konsistenz durch Konvention vorhanden.

Gibt zurück:
self

Gibt die Instanz selbst zurück.

fit_predict(X, y=None)[Quelle]#

Clusterbildung aus Merkmalen/Affinitätsmatrix anpassen; Clusterbeschriftungen zurückgeben.

Parameter:
X{array-like, sparse matrix} von shape (n_samples, n_features), oder array-like von shape (n_samples, n_samples)

Trainingsinstanzen zum Clustern oder Ähnlichkeiten / Affinitäten zwischen Instanzen, wenn affinity='precomputed'. Wenn eine spärliche Merkmalsmatrix bereitgestellt wird, wird sie in eine spärliche csr_matrix konvertiert.

yIgnoriert

Nicht verwendet, hier zur API-Konsistenz durch Konvention vorhanden.

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

Clusterbeschriftungen.

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.

predict(X)[Quelle]#

Sagt den nächstgelegenen Cluster voraus, zu dem jede Stichprobe in X gehört.

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

Neue Daten zur Vorhersage. Wenn eine spärliche Matrix bereitgestellt wird, wird sie in eine spärliche csr_matrix konvertiert.

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

Clusterbeschriftungen.

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.