AgglomerativeClustering#

class sklearn.cluster.AgglomerativeClustering(n_clusters=2, *, metric='euclidean', memory=None, connectivity=None, compute_full_tree='auto', linkage='ward', distance_threshold=None, compute_distances=False)[Quelle]#

Agglomeratives Clustering.

Fügt Paare von Clustern von Stichprobendaten rekursiv zusammen; verwendet die Linkage-Distanz.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
n_clustersint oder None, Standard=2

Die Anzahl der zu findenden Cluster. Muss None sein, wenn distance_threshold nicht None ist.

metricstr oder aufrufbar, Standard=”euclidean”

Metrik zur Berechnung der Verknüpfung. Kann „euclidean“, „l1“, „l2“, „manhattan“, „cosine“ oder „precomputed“ sein. Wenn die Verknüpfung „ward“ ist, wird nur „euclidean“ akzeptiert. Wenn „precomputed“, wird eine Distanzmatrix als Eingabe für die fit-Methode benötigt. Wenn connectivity None ist, ist linkage „single“ und affinity ist nicht „precomputed“, jede gültige paarweise Distanzmetrik kann zugewiesen werden.

Ein Beispiel für agglomeratives Clustering mit verschiedenen Metriken finden Sie unter Agglomeratives Clustering mit verschiedenen Metriken.

Hinzugefügt in Version 1.2.

memoryString oder Objekt mit dem joblib.Memory-Interface, Standard=None

Wird verwendet, um die Ausgabe der Berechnung des Baumes zu cachen. Standardmäßig erfolgt kein Caching. Wenn ein String angegeben wird, ist dies der Pfad zum Cache-Verzeichnis.

connectivityarray-ähnlich, dünne Matrix oder aufrufbar, Standard=None

Konnektivitätsmatrix. Definiert für jede Stichprobe die benachbarten Stichproben gemäß einer bestimmten Datenstruktur. Dies kann eine Konnektivitätsmatrix selbst sein oder eine aufrufbare Funktion, die die Daten in eine Konnektivitätsmatrix umwandelt, wie sie z. B. von kneighbors_graph abgeleitet wird. Standard ist None, d. h. der hierarchische Clustering-Algorithmus ist unstrukturiert.

Ein Beispiel für eine Konnektivitätsmatrix mit kneighbors_graph finden Sie unter Hierarchisches Clustering mit und ohne Struktur.

compute_full_tree„auto“ oder bool, Standard=”auto”

Beendet den Aufbau des Baumes bei n_clusters frühzeitig. Dies ist nützlich, um die Rechenzeit zu verkürzen, wenn die Anzahl der Cluster im Vergleich zur Anzahl der Stichproben nicht klein ist. Diese Option ist nur nützlich, wenn eine Konnektivitätsmatrix angegeben wird. Beachten Sie auch, dass es bei variierender Clusteranzahl und Verwendung von Caching vorteilhaft sein kann, den vollständigen Baum zu berechnen. Muss True sein, wenn distance_threshold nicht None ist. Standardmäßig ist compute_full_tree „auto“, was True entspricht, wenn distance_threshold nicht None ist oder n_clusters kleiner als das Maximum von 100 oder 0.02 * n_samples ist. Andernfalls entspricht „auto“ False.

linkage{‘ward’, ‘complete’, ‘average’, ‘single’}, Standard=’ward’

Welches Verknüpfungskriterium verwendet werden soll. Das Verknüpfungskriterium bestimmt, welche Distanz zwischen Beobachtungsgruppen verwendet wird. Der Algorithmus fügt die Clusterpaare zusammen, die dieses Kriterium minimieren.

  • „ward“ minimiert die Varianz der zusammengeführten Cluster.

  • „average“ verwendet den Durchschnitt der Distanzen jeder Beobachtung der beiden Gruppen.

  • „complete“ oder „maximum“ Verknüpfung verwendet die maximalen Distanzen zwischen allen Beobachtungen der beiden Gruppen.

  • „single“ verwendet das Minimum der Distanzen zwischen allen Beobachtungen der beiden Gruppen.

Hinzugefügt in Version 0.20: Die Option „single“ wurde hinzugefügt

Beispiele, die verschiedene linkage-Kriterien vergleichen, finden Sie unter Vergleich verschiedener hierarchischer Verknüpfungsmethoden auf Beispiel-Datensätzen.

distance_thresholdfloat, Standard=None

Die Verknüpfungsdistanzschwelle, bei oder über der Cluster nicht mehr zusammengeführt werden. Wenn nicht None, muss n_clusters None sein und compute_full_tree muss True sein.

Hinzugefügt in Version 0.21.

compute_distancesbool, Standard=False

Berechnet Distanzen zwischen Clustern, auch wenn distance_threshold nicht verwendet wird. Dies kann für die Visualisierung von Dendrogrammen verwendet werden, verursacht jedoch einen Rechen- und Speicheraufwand.

Hinzugefügt in Version 0.24.

Ein Beispiel für die Visualisierung von Dendrogrammen finden Sie unter Plot Hierarchisches Clustering Dendrogramm.

Attribute:
n_clusters_int

Die vom Algorithmus gefundene Anzahl von Clustern. Wenn distance_threshold=None, ist sie gleich dem angegebenen n_clusters.

labels_ndarray der Form (n_samples)

Cluster-Labels für jeden Punkt.

n_leaves_int

Anzahl der Blätter im hierarchischen Baum.

n_connected_components_int

Die geschätzte Anzahl von verbundenen Komponenten im Graphen.

Hinzugefügt in Version 0.21: n_connected_components_ wurde hinzugefügt, um n_components_ zu ersetzen.

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.

children_array-ähnlich der Form (n_samples-1, 2)

Die Kinder jedes Nicht-Blatt-Knotens. Werte kleiner als n_samples entsprechen den Blättern des Baumes, die die ursprünglichen Stichproben sind. Ein Knoten i größer oder gleich n_samples ist ein Nicht-Blatt-Knoten und hat die Kinder children_[i - n_samples]. Alternativ werden bei der i-ten Iteration children[i][0] und children[i][1] zusammengeführt, um den Knoten n_samples + i zu bilden.

distances_array-ähnlich der Form (n_nodes-1,)

Distanzen zwischen Knoten an der entsprechenden Stelle in children_. Nur berechnet, wenn distance_threshold verwendet wird oder compute_distances auf True gesetzt ist.

Siehe auch

FeatureAgglomeration

Agglomeratives Clustering, aber für Merkmale anstelle von Stichproben.

ward_tree

Hierarchisches Clustering mit Ward-Verknüpfung.

Beispiele

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

Ein Vergleich von Agglomerativem Clustering mit anderen Clustering-Algorithmen finden Sie unter Vergleich verschiedener Clustering-Algorithmen auf Beispiel-Datensätzen

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

Fügt das hierarchische Clustering aus Merkmalen oder einer Distanzmatrix an.

Parameter:
Xarray-ähnlich, Form (n_samples, n_features) oder (n_samples, n_samples)

Trainingsinstanzen zum Clustern oder Distanzen zwischen Instanzen, wenn metric='precomputed'.

yIgnoriert

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

Gibt zurück:
selfobject

Gibt die angepasste Instanz zurück.

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

Passt die Ergebnisse der Clusterzuweisung für jede Stichprobe an und gibt sie zurück.

Zusätzlich zum Anpassen gibt diese Methode auch das Ergebnis der Clusterzuweisung für jede Stichprobe im Trainingssatz zurück.

Parameter:
Xarray-ähnlich der Form (n_samples, n_features) oder (n_samples, n_samples)

Trainingsinstanzen zum Clustern oder Distanzen zwischen Instanzen, wenn affinity='precomputed'.

yIgnoriert

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

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

Cluster-Labels.

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.

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.