Mutual Information between two clusterings.
The Mutual Information is a measure of the similarity between two labels of the same data. Where \(|U_i|\) is the number of the samples in cluster \(U_i\) and \(|V_j|\) is the number of the samples in cluster \(V_j\), the Mutual Information between clusterings \(U\) and \(V\) is given as:
This metric is independent of the absolute values of the labels: a permutation of the class or cluster label values won’t change the score value in any way.
This metric is furthermore symmetric: switching \(U\) (i.e label_true) with \(V\) (i.e. label_pred) will return the same score value. This can be useful to measure the agreement of two independent label assignments strategies on the same dataset when the real ground truth is not known.
Read more in the User Guide.
A clustering of the data into disjoint subsets, called \(U\) in the above formula.
A clustering of the data into disjoint subsets, called \(V\) in the above formula.
A contingency matrix given by the contingency_matrix function. If value is None, it will be computed, otherwise the given value is used, with labels_true and labels_pred ignored.
Mutual information, a non-negative value, measured in nats using the natural logarithm.
See also
adjusted_mutual_info_scoreAdjusted against chance Mutual Information.
normalized_mutual_info_scoreNormalized Mutual Information.
The logarithm used is the natural logarithm (base-e).
>>> 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) np.float64(0.056...)
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.metrics.mutual_info_score.html