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)undH(labels_pred))normalisiert, der durch dieaverage_methoddefiniert ist.Diese Maßzahl ist nicht zufallsbereinigt. Daher könnte
adjusted_mutual_info_scorebevorzugt 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_truemitlabel_predgibt 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_methodwurde 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_scoreV-Maß (NMI mit arithmetischem Mittelwert-Option).
adjusted_rand_scoreAdjusted Rand Index.
adjusted_mutual_info_scoreAdjusted 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
Galeriebeispiele#
Anpassung für Zufälligkeit in der Clusterleistungsbewertung