normalized_mutual_info_score#

sklearn.metrics.normalized_mutual_info_score(labels_true, labels_pred, *, average_method='arithmetic')[Quelle]#

Normalisierte gegenseitige Information zwischen zwei Clusterings.

Der normalisierte Mutual Information (NMI) Score ist eine Normalisierung des Mutual Information (MI) Scores, um die Ergebnisse zwischen 0 (keine gegenseitige Information) und 1 (perfekte Korrelation) zu skalieren. In dieser Funktion wird die gegenseitige Information durch einen verallgemeinerten Mittelwert von H(labels_true) und H(labels_pred)) normalisiert, der durch die average_method definiert ist.

Diese Maßzahl ist nicht zufallsbereinigt. Daher könnte adjusted_mutual_info_score bevorzugt werden.

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 Score-Wert 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_trueint array-ähnlich der Form (n_samples,)

Eine Clusterbildung der Daten in disjunkte Teilmengen.

labels_predint array-ähnlich der Form (n_samples,)

Eine Clusterbildung der Daten in disjunkte Teilmengen.

average_method{‘min’, ‘geometric’, ‘arithmetic’, ‘max’}, Standardwert=’arithmetic’

Wie der Nenner für die Normalisierung berechnet werden soll.

Hinzugefügt in Version 0.20.

Geändert in Version 0.22: Der Standardwert von average_method wurde von 'geometric' zu 'arithmetic' geändert.

Gibt zurück:
nmifloat

Score zwischen 0.0 und 1.0 in normalisierten Nats (basierend auf dem natürlichen Logarithmus). 1.0 bedeutet eine perfekte vollständige Beschriftung.

Siehe auch

v_measure_score

V-Maß (NMI mit arithmetischem Mittelwert-Option).

adjusted_rand_score

Adjusted Rand Index.

adjusted_mutual_info_score

Adjusted Mutual Information (zufallsbereinigt).

Beispiele

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

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

Wenn Klassenmitglieder vollständig über verschiedene Cluster aufgeteilt sind, ist die Zuweisung vollständig unvollständig, daher ist der NMI null.

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