v_measure_score#

sklearn.metrics.v_measure_score(labels_true, labels_pred, *, beta=1.0)[Quelle]#

V-Measure Cluster-Beschriftung gegeben eine Grundwahrheit.

Diese Punktzahl ist identisch mit normalized_mutual_info_score mit der Option 'arithmetic' für die Mittelwertbildung.

Das V-Maß ist das harmonische Mittel zwischen Homogenität und Vollständigkeit

v = (1 + beta) * homogeneity * completeness
     / (beta * homogeneity + completeness)

Diese Metrik ist unabhängig von den absoluten Werten der Labels: eine Permutation der Klassen- oder Cluster-Labelwerte ändert den Score-Wert in keiner Weise.

Diese Metrik ist außerdem symmetrisch: das Vertauschen von label_true mit label_pred gibt denselben Punktwert zurück. Dies kann nützlich sein, um die Übereinstimmung zweier unabhängiger Label-Zuweisungsstrategien auf demselben Datensatz zu messen, wenn die tatsächliche Grundwahrheit nicht bekannt ist.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
labels_truearray-like von Form (n_samples,)

Wahre Klassenlabels als Referenz.

labels_predarray-like von Form (n_samples,)

Zu bewertende Clusterlabels.

betafloat, Standard=1.0

Verhältnis des Gewichts, das Homogenität gegenüber Vollständigkeit zugewiesen wird. Wenn beta größer als 1 ist, wird Vollständigkeit bei der Berechnung stärker gewichtet. Wenn beta kleiner als 1 ist, wird Homogenität stärker gewichtet.

Gibt zurück:
v_measurefloat

Score zwischen 0.0 und 1.0. 1.0 steht für eine perfekt vollständige Kennzeichnung.

Siehe auch

homogeneity_score

Homogenitätsmetrik der Cluster-Kennzeichnung.

completeness_score

Vollständigkeitsmetrik der Cluster-Beschriftung.

normalized_mutual_info_score

Normalisierte gegenseitige Information.

Referenzen

Beispiele

Perfekte Labellings sind sowohl homogen als auch vollständig, daher haben sie einen Score von 1,0

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

Beschriftungen, die allen Klassenmitgliedern dieselben Cluster zuweisen, sind vollständig, aber nicht homogen und werden daher bestraft.

>>> print("%.6f" % v_measure_score([0, 0, 1, 2], [0, 0, 1, 1]))
0.8
>>> print("%.6f" % v_measure_score([0, 1, 2, 3], [0, 0, 1, 1]))
0.67

Beschriftungen, die reine Cluster mit Mitgliedern aus denselben Klassen haben, sind homogen, aber unnötige Aufteilungen beeinträchtigen die Vollständigkeit und werden daher auch für das V-Maß bestraft.

>>> print("%.6f" % v_measure_score([0, 0, 1, 1], [0, 0, 1, 2]))
0.8
>>> print("%.6f" % v_measure_score([0, 0, 1, 1], [0, 1, 2, 3]))
0.67

Wenn Klassenmitglieder vollständig über verschiedene Cluster verteilt sind, ist die Zuweisung völlig unvollständig, daher ist das V-Maß null.

>>> print("%.6f" % v_measure_score([0, 0, 0, 0], [0, 1, 2, 3]))
0.0

Cluster, die Stichproben aus völlig unterschiedlichen Klassen enthalten, zerstören die Homogenität der Beschriftung vollständig, daher

>>> print("%.6f" % v_measure_score([0, 0, 1, 1], [0, 0, 0, 0]))
0.0