Spec-Zone.ru › scikit-learn

mutual_info_score

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

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

Взаимная информация — это мера сходства между двумя метками одного и того же набора данных. Где \(|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,), dtype=integral

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

labels_predarray-like of shape (n_samples,), dtype=integral

Кластеризация данных на непересекающиеся подмножества, называемые \(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

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

Примечания

Используемый логарифм — натуральный логарифм (по основанию е).

Примеры

>>> 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

Spec-Zone.ru

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