Spec-Zone.ru › scikit-learn

adjusted_mutual_info_score

sklearn.metrics.adjusted_mutual_info_score(labels_true, labels_pred, *, average_method='arithmetic')[source]

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

Скорректированная взаимная информация (AMI) — это корректировка оценки взаимной информации (MI) с учётом случайности. Она учитывает тот факт, что MI, как правило, выше для двух кластеризаций с большим количеством кластеров, независимо от того, насколько больше информации они совместно содержат. Для двух кластеризаций \(U\) и \(V\), AMI вычисляется так:

AMI(U, V) = [MI(U, V) - E(MI(U, V))] / [avg(H(U), H(V)) - E(MI(U, V))]

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

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

Обратите внимание, что эта функция на порядок медленнее, чем другие метрики, такие как скорректированный индекс Рэнда.

Дополнительная информация в Руководстве пользователя.

Parameters:
labels_trueцелочисленный массив формы (n_samples,)

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

labels_predцелочисленный массив формы (n_samples,)

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

average_method{‘min’, ‘geometric’, ‘arithmetic’, ‘max’}, по умолчанию=’arithmetic’

Как вычислить нормализатор в знаменателе.

Добавлена в версии 0.20.

Изменено в версии 0.22: Значение по умолчанию для average_method изменено с ‘max’ на ‘arithmetic’.

Returns:
ami: float (ограничено значением 1.0)

AMI возвращает 1, когда две разбиения идентичны (т.е. идеально совпадают). Случайные разбиения (независимые метки) имеют ожидаемое AMI около 0 в среднем, поэтому могут быть отрицательными. Значение находится в скорректированных натах (основанных на натуральном логарифме).

См. также

adjusted_rand_score

Скорректированный индекс Рэнда.

mutual_info_score

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

Ссылки

[1]

Vinh, Epps, and Bailey, (2010). Information Theoretic Measures for Clusterings Comparison: Variants, Properties, Normalization and Correction for Chance, JMLR

[2]

Статья в Википедии о скорректированной взаимной информации

Примеры

Идеальные метки являются как однородными, так и полными, следовательно, имеют оценку 1.0:

>>> from sklearn.metrics.cluster import adjusted_mutual_info_score
>>> adjusted_mutual_info_score([0, 0, 1, 1], [0, 0, 1, 1])
... 
1.0
>>> adjusted_mutual_info_score([0, 0, 1, 1], [1, 1, 0, 0])
... 
1.0

Если члены классов полностью разделены по разным кластерам, назначение является совершенно неполным, следовательно, AMI равен нулю:

>>> adjusted_mutual_info_score([0, 0, 0, 0], [0, 1, 2, 3])
... 
0.0

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

Демонстрация кластеризации K-средних на данных рукописных цифр

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

Демонстрация алгоритма кластеризации DBSCAN

Демонстрация алгоритма кластеризации affinity propagation

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

Spec-Zone.ru

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