adjusted_rand_score#

sklearn.metrics.adjusted_rand_score(labels_true, labels_pred)[Quelle]#

Durch den Zufall angepasster Rand-Index.

Der Rand-Index berechnet ein Ähnlichkeitsmaß zwischen zwei Clusterings, indem alle Stichprobenpaare betrachtet und Paare gezählt werden, die in den vorhergesagten und wahren Clusterings im selben oder in unterschiedlichen Clustern zugewiesen sind.

Der rohe RI-Wert wird dann mithilfe des folgenden Schemas "zufallsbereinigt" zum ARI-Wert

ARI = (RI - Expected_RI) / (max(RI) - Expected_RI)

Der bereinigte Randindex hat somit sicher einen Wert nahe 0,0 für zufällige Beschriftungen unabhängig von der Anzahl der Cluster und Stichproben und exakt 1,0, wenn die Clusterings identisch sind (bis auf eine Permutation). Der bereinigte Randindex ist nach unten durch -0,5 für besonders diskordante Clusterings begrenzt.

ARI ist ein symmetrisches Maß

adjusted_rand_score(a, b) == adjusted_rand_score(b, a)

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
labels_truearray-ähnlich der Form (n_samples,), dtype=int

Wahre Klassenlabels als Referenz.

labels_predarray-ähnlich der Form (n_samples,), dtype=int

Zu bewertende Clusterlabels.

Gibt zurück:
ARIfloat

Ähnlichkeitswert zwischen -0,5 und 1,0. Zufällige Beschriftungen haben einen ARI nahe 0,0. 1,0 steht für perfekte Übereinstimmung.

Siehe auch

adjusted_mutual_info_score

Bereinigte gegenseitige Information.

Referenzen

[Hubert1985]

L. Hubert und P. Arabie, Comparing Partitions, Journal of Classification 1985 https://link.springer.com/article/10.1007%2FBF01908075

[Steinley2004]

D. Steinley, Properties of the Hubert-Arabie adjusted Rand index, Psychological Methods 2004

Beispiele

Perfekt übereinstimmende Beschriftungen haben auch dann einen Score von 1,

>>> from sklearn.metrics.cluster import adjusted_rand_score
>>> adjusted_rand_score([0, 0, 1, 1], [0, 0, 1, 1])
1.0
>>> adjusted_rand_score([0, 0, 1, 1], [1, 1, 0, 0])
1.0

Beschriftungen, die alle Klassenmitglieder demselben Cluster zuweisen, sind vollständig, aber möglicherweise nicht immer rein, daher werden sie bestraft.

>>> adjusted_rand_score([0, 0, 1, 2], [0, 0, 1, 1])
0.57

ARI ist symmetrisch, daher werden Beschriftungen, die reine Cluster mit Mitgliedern aus denselben Klassen haben, aber unnötige Unterteilungen, bestraft.

>>> adjusted_rand_score([0, 0, 1, 1], [0, 0, 1, 2])
0.57

Wenn Klassenmitglieder vollständig über verschiedene Cluster verteilt sind, ist die Zuweisung völlig unvollständig, daher ist der ARI sehr niedrig.

>>> adjusted_rand_score([0, 0, 0, 0], [0, 1, 2, 3])
0.0

ARI kann für besonders diskordante Beschriftungen einen negativen Wert annehmen, die eine schlechtere Wahl darstellen als der erwartete Wert zufälliger Beschriftungen.

>>> adjusted_rand_score([0, 0, 1, 1], [0, 1, 0, 1])
-0.5

Siehe Anpassung an Zufall bei der Bewertung der Clustering-Leistung für ein detaillierteres Beispiel.