Spec-Zone.ru › scikit-learn

adjusted_mutual_info_score

sklearn.metrics.adjusted_mutual_info_score(labels_true, labels_pred, буквально именованные параметры *, average_method='arithmetic')[исходный код]

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

Скорректированная взаимная информация (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) даст то же значение оценки. Это может быть полезно для измерения согласованности двух независимых стратегий присвоения меток на одном наборе данных, когда истинные метки неизвестны.

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

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

Параметры:
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’.

Возвращает:
ami: float (ограничено сверху значением 1.0)

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

См. также

adjusted_rand_score

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

mutual_info_score

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

Список литературы

[1]

Винь, Эппс и Бейли (2010). Информационно-теоретические меры для сравнения разбиений на кластеры: варианты, свойства, нормализация и поправка на случайность, 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

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

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

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

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

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

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

Spec-Zone.ru

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