silhouette_samples#

sklearn.metrics.silhouette_samples(X, labels, *, metric='euclidean', **kwds)[Quelle]#

Berechne den Silhouettenkoeffizienten für jede Stichprobe.

Der Silhouette-Koeffizient ist ein Maß dafür, wie gut Samples mit ähnlichen Samples gruppiert sind. Clustering-Modelle mit einem hohen Silhouette-Koeffizienten gelten als dicht, bei denen ähnliche Samples im selben Cluster liegen und gut getrennt sind, bei denen Samples in verschiedenen Clustern nicht sehr ähnlich zueinander sind.

Der Silhouette-Koeffizient wird für jedes Sample mithilfe des mittleren Intra-Cluster-Abstands (a) und des mittleren nächsten Cluster-Abstands (b) berechnet. Der Silhouette-Koeffizient für ein Sample ist (b - a) / max(a, b). Beachten Sie, dass der Silhouette-Koeffizient nur definiert ist, wenn die Anzahl der Labels zwischen 2 (2 <= n_labels) und der Anzahl der Samples - 1 (n_labels <= n_samples - 1) liegt.

Diese Funktion gibt den Silhouette-Koeffizienten für jedes Sample zurück.

Der beste Wert ist 1 und der schlechteste Wert ist -1. Werte nahe 0 deuten auf überlappende Cluster hin.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
X{array-like, sparse matrix} von Shape (n_samples_a, n_samples_a) wenn metric == “precomputed” oder (n_samples_a, n_features) sonst

Ein Array von paarweisen Abständen zwischen Samples oder ein Feature-Array. Wenn eine sparse Matrix angegeben wird, sollte das CSR-Format bevorzugt werden, um eine zusätzliche Kopie zu vermeiden.

labelsarray-ähnlich der Form (n_samples,)

Label-Werte für jedes Sample.

metricstr oder callable, Standard=’euclidean’

Die zu verwendende Metrik bei der Berechnung des Abstands zwischen Instanzen in einem Feature-Array. 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 “precomputed” als Metrik. Vorgefertigte Distanzmatrizen müssen 0 entlang der Diagonale haben.

**kwdsoptionale Schlüsselwortparameter

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

Gibt zurück:
silhouettearray-like von Shape (n_samples,)

Silhouette-Koeffizienten für jedes Sample.

Referenzen

Beispiele

>>> from sklearn.metrics import silhouette_samples
>>> from sklearn.datasets import make_blobs
>>> from sklearn.cluster import KMeans
>>> X, y = make_blobs(n_samples=50, random_state=42)
>>> kmeans = KMeans(n_clusters=3, random_state=42)
>>> labels = kmeans.fit_predict(X)
>>> silhouette_samples(X, labels)
array([...])