FeatureAgglomeration#

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

Mergt Merkmale.

Fügt rekursiv Merkmalscluster zusammen.

Siehe Feature Agglomeration im Vergleich zur univariaten Auswahl für ein Beispiel für die Strategie FeatureAgglomeration im Vergleich zu einer univariaten Merkmalsauswahlstrategie (basierend auf ANOVA).

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 callable, Standard=”euclidean”

Metrik zur Berechnung der Verknüpfung. Kann "euclidean", "l1", "l2", "manhattan", "cosine" oder "precomputed" sein. Wenn linkage "ward" ist, wird nur "euclidean" akzeptiert. Wenn "precomputed", wird eine Distanzmatrix als Eingabe für die fit-Methode benötigt.

Hinzugefügt in Version 1.2.

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

Wird verwendet, um die Ausgabe der Baumkalkulation zu cachen. Standardmäßig erfolgt keine Zwischenspeicherung. Wenn ein String angegeben wird, ist dies der Pfad zum Caching-Verzeichnis.

connectivityarray-like, sparse matrix oder callable, Standard=None

Konnetivitätsmatrix. Definiert für jedes Merkmal die benachbarten Merkmale, die einer bestimmten Struktur der Daten folgen. Dies kann eine Konnetivitätsmatrix selbst sein oder eine callable, die die Daten in eine Konnetivitätsmatrix umwandelt, wie z. B. aus kneighbors_graph abgeleitet. Standard ist None, d.h. der hierarchische Clustering-Algorithmus ist unstrukturiert.

compute_full_tree‘auto’ oder bool, Standard=’auto’

Stoppt frühzeitig den Aufbau des Baumes bei n_clusters. Dies ist nützlich, um die Berechnungszeit zu verkürzen, wenn die Anzahl der Cluster nicht klein im Verhältnis zur Anzahl der Merkmale ist. Diese Option ist nur nützlich, wenn eine Konnetivitätsmatrix angegeben wird. Beachten Sie auch, dass es bei Variation der Anzahl der Cluster 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 äquivalent zu True ist, wenn distance_threshold nicht None ist oder n_clusters kleiner als das Maximum von 100 oder 0.02 * n_samples ist. Andernfalls ist "auto" äquivalent zu False.

linkage{“ward”, “complete”, “average”, “single”}, Standard=”ward”

Welches Verknüpfungskriterium verwendet werden soll. Das Verknüpfungskriterium bestimmt, welche Distanz zwischen Merkmalsmengen verwendet wird. Der Algorithmus wird die Clusterpaare zusammenführen, die dieses Kriterium minimieren.

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

  • „complete“ oder maximale Verknüpfung verwendet die maximalen Distanzen zwischen allen Merkmalen der beiden Mengen.

  • „average“ verwendet den Durchschnitt der Distanzen jedes Merkmals der beiden Mengen.

  • „single“ verwendet das Minimum der Distanzen zwischen allen Merkmalen der beiden Mengen.

pooling_funccallable, Standard=np.mean

Kombiniert die Werte der agglomerierten Merkmale zu einem einzigen Wert und sollte ein Array der Form [M, N] und das Schlüsselwortargument axis=1 akzeptieren und es auf ein Array der Größe [M] reduzieren.

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 die Distanzen zwischen Clustern, auch wenn distance_threshold nicht verwendet wird. Dies kann zur Visualisierung von Dendrogrammen verwendet werden, verursacht aber einen Rechen- und Speicheraufwand.

Hinzugefügt in Version 0.24.

Attribute:
n_clusters_int

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

labels_array-like von (n_features,)

Cluster-Labels für jedes Merkmal.

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-like der Form (n_nodes-1, 2)

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

distances_array-like der Form (n_nodes-1,)

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

Siehe auch

AgglomerativeClustering

Agglomerative Clustering wendet dies auf Samples anstelle von Merkmalen an.

ward_tree

Hierarchisches Clustering mit Ward-Verknüpfung.

Beispiele

>>> import numpy as np
>>> from sklearn import datasets, cluster
>>> digits = datasets.load_digits()
>>> images = digits.images
>>> X = np.reshape(images, (len(images), -1))
>>> agglo = cluster.FeatureAgglomeration(n_clusters=32)
>>> agglo.fit(X)
FeatureAgglomeration(n_clusters=32)
>>> X_reduced = agglo.transform(X)
>>> X_reduced.shape
(1797, 32)
fit(X, y=None)[Quelle]#

Passt das hierarchische Clustering an die Daten an.

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

Die Daten.

yIgnoriert

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

Gibt zurück:
selfobject

Gibt den Transformer zurück.

property fit_predict#

Passt an und gibt das Ergebnis der Clustering-Zuweisung jedes Samples zurück.

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.

inverse_transform(X)[Quelle]#

Kehrt die Transformation um und gibt einen Vektor der Größe n_features zurück.

Parameter:
Xarray-like der Form (n_samples, n_clusters) oder (n_clusters,)

Die Werte, die jedem Cluster von Samples zugewiesen werden sollen.

Gibt zurück:
X_originalndarray der Form (n_samples, n_features) oder (n_features,)

Ein Vektor der Größe n_samples mit den Werten von X, die jedem der Sample-Cluster zugewiesen sind.

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]#

Transformiert eine neue Matrix mithilfe des erstellten Clusterings.

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

Ein M mal N-Array von M Beobachtungen in N Dimensionen oder ein Array der Länge M von M eindimensionalen Beobachtungen.

Gibt zurück:
Yndarray der Form (n_samples, n_clusters) oder (n_clusters,)

Die gepoolten Werte für jeden Merkmalscluster.