Birch#

class sklearn.cluster.Birch(*, threshold=0.5, branching_factor=50, n_clusters=3, compute_labels=True)[Quelle]#

Implementiert den BIRCH-Clustering-Algorithmus.

Es ist ein speichereffizienter Online-Lernalgorithmus, der als Alternative zu MiniBatchKMeans bereitgestellt wird. Er konstruiert eine Baumdatenstruktur, deren Clusterzentroide an den Blättern abgelesen werden. Diese können entweder die endgültigen Clusterzentroide sein oder als Eingabe für einen anderen Clustering-Algorithmus wie AgglomerativeClustering verwendet werden.

Mehr dazu im Benutzerhandbuch.

Hinzugefügt in Version 0.16.

Parameter:
thresholdfloat, default=0.5

Der Radius des Teilclusters, der durch das Zusammenführen einer neuen Stichprobe und des nächstgelegenen Teilclusters entsteht, sollte kleiner als der Schwellenwert sein. Andernfalls wird ein neuer Teilcluster gestartet. Ein sehr niedriger Wert fördert die Aufteilung, und umgekehrt.

branching_factorint, default=50

Maximale Anzahl von CF-Teilclustern in jedem Knoten. Wenn eine neue Stichprobe eintrifft, die die Anzahl der Teilcluster über den Verzweigungsfaktor hinaus erhöht, wird dieser Knoten in zwei Knoten aufgeteilt, wobei die Teilcluster in jedem neu verteilt werden. Der übergeordnete Teilcluster dieses Knotens wird entfernt und zwei neue Teilcluster werden als Eltern der 2 aufgeteilten Knoten hinzugefügt.

n_clustersint, Instanz eines sklearn.cluster-Modells oder None, default=3

Anzahl der Cluster nach dem finalen Clustering-Schritt, der die Teilcluster aus den Blättern als neue Stichproben behandelt.

  • None : Der finale Clustering-Schritt wird nicht durchgeführt und die Teilcluster werden wie sie sind zurückgegeben.

  • sklearn.cluster Estimator : Wenn ein Modell bereitgestellt wird, wird das Modell trainiert, wobei die Teilcluster als neue Stichproben behandelt werden, und die ursprünglichen Daten werden der Bezeichnung des nächstgelegenen Teilclusters zugeordnet.

  • int : Das trainierte Modell ist AgglomerativeClustering mit n_clusters, das gleich dem int ist.

compute_labelsbool, default=True

Ob Labels für jede Anpassung berechnet werden sollen oder nicht.

Attribute:
root__CFNode

Wurzel des CFTree.

dummy_leaf__CFNode

Startzeiger auf alle Blätter.

subcluster_centers_ndarray

Zentroiden aller Teilcluster, die direkt aus den Blättern gelesen werden.

subcluster_labels_ndarray

Labels, die den Teilcluster-Zentroiden nach ihrer globalen Clusterbildung zugewiesen werden.

labels_ndarray der Form (n_samples,)

Array von Labels, die den Eingabedaten zugewiesen werden. Wenn partial_fit anstelle von fit verwendet wird, werden sie den letzten Datenstapel zugewiesen.

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

MiniBatchKMeans

Alternative Implementierung, die inkrementelle Aktualisierungen der Positionen der Zentren mit Mini-Batches durchführt.

Anmerkungen

Die Baumdatenstruktur besteht aus Knoten, wobei jeder Knoten eine Anzahl von Teilclustern enthält. Die maximale Anzahl von Teilclustern in einem Knoten wird durch den Verzweigungsfaktor bestimmt. Jeder Teilcluster speichert eine lineare Summe, eine quadratische Summe und die Anzahl der Stichproben in diesem Teilcluster. Darüber hinaus kann jeder Teilcluster einen Knoten als Kind haben, wenn der Teilcluster kein Mitglied eines Blattknotens ist.

Für einen neuen Punkt, der die Wurzel betritt, wird er mit dem Teilcluster zusammengeführt, der ihm am nächsten liegt, und die lineare Summe, die quadratische Summe und die Anzahl der Stichproben dieses Teilclusters werden aktualisiert. Dies geschieht rekursiv, bis die Eigenschaften des Blattknotens aktualisiert sind.

Siehe Vergleich von BIRCH und MiniBatchKMeans für einen Vergleich mit MiniBatchKMeans.

Referenzen

Beispiele

>>> from sklearn.cluster import Birch
>>> X = [[0, 1], [0.3, 1], [-0.3, 1], [0, -1], [0.3, -1], [-0.3, -1]]
>>> brc = Birch(n_clusters=None)
>>> brc.fit(X)
Birch(n_clusters=None)
>>> brc.predict(X)
array([0, 0, 0, 1, 1, 1])

Für einen Vergleich des BIRCH-Clustering-Algorithmus mit anderen Clustering-Algorithmen siehe Vergleich verschiedener Clustering-Algorithmen auf Spielzeugdatensätzen

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

Erstellen Sie einen CF-Baum für die Eingabedaten.

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

Eingabedaten.

yIgnoriert

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

Gibt zurück:
self

Angepasster Schätzer.

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

Führt Clustering auf X durch und gibt Cluster-Labels zurück.

Parameter:
Xarray-like der Form (n_samples, n_features)

Eingabedaten.

yIgnoriert

Wird nicht verwendet, ist aber aus Gründen der API-Konsistenz per Konvention vorhanden.

**kwargsdict

Argumente, die an fit übergeben werden sollen.

Hinzugefügt in Version 1.4.

Gibt zurück:
labelsndarray der Form (n_samples,), dtype=np.int64

Clusterbeschriftungen.

fit_transform(X, y=None, **fit_params)[Quelle]#

An Daten anpassen, dann transformieren.

Passt den Transformer an X und y mit optionalen Parametern fit_params an und gibt eine transformierte Version von X zurück.

Parameter:
Xarray-like der Form (n_samples, n_features)

Eingabestichproben.

yarray-like der Form (n_samples,) oder (n_samples, n_outputs), Standardwert=None

Zielwerte (None für unüberwachte Transformationen).

**fit_paramsdict

Zusätzliche Fit-Parameter. Nur übergeben, wenn der Estimator zusätzliche Parameter in seiner fit-Methode akzeptiert.

Gibt zurück:
X_newndarray array der Form (n_samples, n_features_new)

Transformiertes Array.

get_feature_names_out(input_features=None)[Quelle]#

Holt die Ausgabemerkmale für die Transformation.

Die Feature-Namen werden mit dem kleingeschriebenen Klassennamen präfixiert. Wenn der Transformer z.B. 3 Features ausgibt, dann sind die Feature-Namen: ["klassenname0", "klassenname1", "klassenname2"].

Parameter:
input_featuresarray-like von str oder None, default=None

Wird nur verwendet, um die Feature-Namen mit den in fit gesehenen Namen zu validieren.

Gibt zurück:
feature_names_outndarray von str-Objekten

Transformierte Merkmalnamen.

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.

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

Online-Lernen. Verhindert den Neuaufbau des CFTree von Grund auf.

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

Eingabedaten. Wenn X nicht angegeben wird, wird nur der globale Clustering-Schritt durchgeführt.

yIgnoriert

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

Gibt zurück:
self

Angepasster Schätzer.

predict(X)[Quelle]#

Daten mithilfe der centroids_ von Teilclustern vorhersagen.

Vermeiden Sie die Berechnung der Zeilennormen von X.

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

Eingabedaten.

Gibt zurück:
labelsndarray von shape(n_samples,)

Beschriftete Daten.

set_output(*, transform=None)[Quelle]#

Ausgabecontainer festlegen.

Siehe Einführung in die set_output API für ein Beispiel zur Verwendung der API.

Parameter:
transform{“default”, “pandas”, “polars”}, default=None

Konfiguriert die Ausgabe von transform und fit_transform.

  • "default": Standardausgabeformat eines Transformers

  • "pandas": DataFrame-Ausgabe

  • "polars": Polars-Ausgabe

  • None: Die Transformationskonfiguration bleibt unverändert

Hinzugefügt in Version 1.4: Die Option "polars" wurde hinzugefügt.

Gibt zurück:
selfestimator instance

Schätzer-Instanz.

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.

transform(X)[Quelle]#

Transformieren Sie X in die Dimension der Teilcluster-Zentroiden.

Jede Dimension repräsentiert den Abstand vom Stichprobenpunkt zu jedem Cluster-Zentroiden.

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

Eingabedaten.

Gibt zurück:
X_trans{array-like, sparse matrix} of shape (n_samples, n_clusters)

Transformierte Daten.