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
euclideanunterstü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
fitverwendet 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
XMerkmalnamen hat, die alle Zeichenketten sind.Hinzugefügt in Version 1.0.
Siehe auch
AgglomerativeClusteringFü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.
KMeansK-Means-Clustering.
MiniBatchKMeansMini-Batch K-Means-Clustering.
MeanShiftMean Shift Clustering mit einem flachen Kernel.
SpectralClusteringWendet 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_indicesund Labels zurück, wenn Exemplare/Cluster vorhanden sind. Diese können jedoch degeneriert sein und sollten mit Vorsicht verwendet werden.Wenn
fitnicht konvergiert, wirdcluster_centers_immer noch gefüllt, kann aber degeneriert sein. Gehen Sie in diesem Fall mit Vorsicht vor. Wennfitnicht konvergiert und keinecluster_centers_erzeugen kann, werden alle Samples vonpredictals-1gekennzeichnet.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
fitzu einem einzigen Clusterzentrum und Label0fü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ärlichecsr_matrixkonvertiert.- 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ärlichecsr_matrixkonvertiert.- 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_matrixkonvertiert.
- 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.
Galeriebeispiele#
Demo des Affinity Propagation Clustering Algorithmus
Vergleich verschiedener Clustering-Algorithmen auf Toy-Datensätzen