mutual_info_score#

sklearn.metrics.mutual_info_score(labels_true, labels_pred, *, contingency=None)[Quelle]#

Gegenseitige Information zwischen zwei Clusterings.

Die gegenseitige Information ist ein Maß für die Ähnlichkeit zwischen zwei Labeln derselben Daten. Wenn \(|U_i|\) die Anzahl der Stichproben im Cluster \(U_i\) und \(|V_j|\) die Anzahl der Stichproben im Cluster \(V_j\) ist, dann ist die gegenseitige Information zwischen den Clusterings \(U\) und \(V\) gegeben durch

\[MI(U,V)=\sum_{i=1}^{|U|} \sum_{j=1}^{|V|} \frac{|U_i\cap V_j|}{N} \log\frac{N|U_i \cap V_j|}{|U_i||V_j|}\]

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 \(U\) (d.h. label_true) mit \(V\) (d.h. label_pred) ergibt denselben Score-Wert. Dies kann nützlich sein, um die Übereinstimmung von zwei unabhängigen Label-Zuweisungsstrategien für denselben Datensatz zu messen, wenn die tatsächliche Grundwahrheit nicht bekannt ist.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
labels_truearray-like von der Form (n_samples,), dtype=integral

Eine Clusterung der Daten in disjunkte Teilmengen, in der obigen Formel als \(U\) bezeichnet.

labels_predarray-like von der Form (n_samples,), dtype=integral

Eine Clusterung der Daten in disjunkte Teilmengen, in der obigen Formel als \(V\) bezeichnet.

contingency{array-like, sparse matrix} von der Form (n_classes_true, n_classes_pred), Standard=None

Eine Kontingenzmatrix, die von der Funktion contingency_matrix geliefert wird. Wenn der Wert None ist, wird er berechnet, andernfalls wird der angegebene Wert verwendet, wobei labels_true und labels_pred ignoriert werden.

Gibt zurück:
mifloat

Gegenseitige Information, ein nicht-negativer Wert, gemessen in Nats unter Verwendung des natürlichen Logarithmus.

Siehe auch

adjusted_mutual_info_score

Gegenseitige Information, korrigiert für Zufall.

normalized_mutual_info_score

Normalisierte gegenseitige Information.

Anmerkungen

Der verwendete Logarithmus ist der natürliche Logarithmus (Basis-e).

Beispiele

>>> from sklearn.metrics import mutual_info_score
>>> labels_true = [0, 1, 1, 0, 1, 0]
>>> labels_pred = [0, 1, 0, 0, 1, 1]
>>> mutual_info_score(labels_true, labels_pred)
0.0566