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 istbdie 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 Labels2 <= n_labels <= n_samples - 1ist.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_distanceserlaubt sind. WennXselbst das Distanz-Array ist, verwenden Siemetric="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 Noneist, 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 Noneist. 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...
Galeriebeispiele#
Demo des Affinity Propagation Clustering Algorithmus
Eine Demo des K-Means Clusterings auf den handschriftlichen Zifferndaten
Auswahl der Anzahl von Clustern mit Silhouette-Analyse auf KMeans-Clustering