Spec-Zone.ru › scikit-learn

mutual_info_score

sklearn.metrics.mutual_info_score(labels_true, labels_pred, *, contingency=None)[исходный код]

Взаимная информация между двумя кластеризациями.

Взаимная информация — это мера сходства двух наборов меток одних и тех же данных. Пусть \(|U_i|\) — количество образцов в кластере \(U_i\), а \(|V_j|\) — количество образцов в кластере \(V_j\). Тогда взаимная информация между кластеризациями \(U\) и \(V\) определяется следующим образом:

\[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|}\]

Эта метрика не зависит от абсолютных значений меток: перестановка значений меток классов или кластеров никак не повлияет на оценку.

Кроме того, эта метрика симметрична: если поменять местами \(U\) (т. е. label_true) и \(V\) (т. е. label_pred), значение оценки не изменится. Это может быть полезно для измерения согласованности двух независимых стратегий присвоения меток на одном наборе данных, если истинные метки неизвестны.

Подробнее см. в руководстве пользователя.

Параметры:
labels_truearray-like of shape (n_samples,)

Кластеризация данных на непересекающиеся подмножества, обозначенные в формуле выше как \(U\).

labels_predarray-like of shape (n_samples,)

Кластеризация данных на непересекающиеся подмножества, обозначенные в формуле выше как \(V\).

contingency{array-like, sparse matrix} of shape (n_classes_true, n_classes_pred), default=None

Матрица сопряжённости, вычисляемая функцией contingency_matrix. Если значение равно None, матрица будет вычислена; в противном случае используется переданное значение, а labels_true и labels_pred игнорируются.

Возвращает:
mifloat

Взаимная информация — неотрицательное значение, измеряемое в натах с использованием натурального логарифма.

См. также

adjusted_mutual_info_score

Взаимная информация с поправкой на случайность.

normalized_mutual_info_score

Нормализованная взаимная информация.

Примечания

Используется натуральный логарифм (основание 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)
0.0566

Примеры из галереи

Поправка на случайность при оценке качества кластеризации

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.metrics.mutual_info_score.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API