silhouette_score#

sklearn.metrics.silhouette_score(X, labels, *, metric='euclidean', sample_size=None, random_state=None, **kwds)[source]#

Berechne den mittleren Silhouettenkoeffizienten aller Stichproben.

Der Silhouette-Koeffizient wird für jedes Sample anhand der mittleren intra-Cluster-Distanz (a) und der mittleren Distanz zum nächsten Cluster (b) berechnet. Der Silhouette-Koeffizient für ein Sample ist (b - a) / max(a, b). Zur Klarstellung ist b die Distanz zwischen einem Sample und dem nächsten Cluster, zu dem das Sample nicht gehört. Beachten Sie, dass der Silhouette-Koeffizient nur definiert ist, wenn die Anzahl der Labels 2 <= n_labels <= n_samples - 1 ist.

Diese Funktion gibt den mittleren Silhouette-Koeffizienten über alle Samples zurück. Um die Werte für jedes Sample zu erhalten, verwenden Sie silhouette_samples.

Der beste Wert ist 1 und der schlechteste Wert ist -1. Werte nahe 0 deuten auf überlappende Cluster hin. Negative Werte deuten im Allgemeinen darauf hin, dass ein Sample dem falschen Cluster zugeordnet wurde, da ein anderer Cluster ähnlicher ist.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
X{array-like, sparse matrix} von Form (n_samples_a, n_samples_a), wenn metric == "precomputed", ansonsten (n_samples_a, n_features)

Ein Array von paarweisen Distanzen zwischen Samples oder ein Feature-Array.

labelsarray-ähnlich der Form (n_samples,)

Vorhergesagte Labels für jede Stichprobe.

metricstr oder callable, Standard=’euclidean’

Die Metrik, die bei der Berechnung der Distanz zwischen Instanzen in einem Feature-Array verwendet werden soll. Wenn metric eine Zeichenkette ist, muss sie eine der Optionen sein, die von pairwise_distances erlaubt sind. Wenn X selbst das Distanz-Array ist, verwenden Sie metric="precomputed".

sample_sizeint, Standard=None

Die Größe der Stichprobe, die bei der Berechnung des Silhouette-Koeffizienten auf einer zufälligen Teilmenge der Daten verwendet werden soll. Wenn sample_size None ist, wird keine Stichprobenentnahme verwendet.

random_stateint, RandomState-Instanz oder None, default=None

Bestimmt die Zufallszahlengenerierung für die Auswahl einer Teilmenge von Samples. Wird verwendet, wenn sample_size nicht None ist. Geben Sie eine Ganzzahl für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg an. Siehe Glossar.

**kwdsoptionale Schlüsselwortparameter

Alle weiteren Parameter werden direkt an die Distanzfunktion weitergegeben. Wenn eine scipy.spatial.distance-Metrik verwendet wird, sind die Parameter weiterhin metrikabhängig. Siehe die SciPy-Dokumentation für Anwendungsbeispiele.

Gibt zurück:
silhouettefloat

Mittlerer Silhouette-Koeffizient für alle Samples.

Referenzen

Beispiele

>>> from sklearn.datasets import make_blobs
>>> from sklearn.cluster import KMeans
>>> from sklearn.metrics import silhouette_score
>>> X, y = make_blobs(random_state=42)
>>> kmeans = KMeans(n_clusters=2, random_state=42)
>>> silhouette_score(X, kmeans.fit_predict(X))
0.49...