Spec-Zone.ru › scikit-learn

adjusted_rand_score

sklearn.metrics.adjusted_rand_score(labels_true, labels_pred)[source]

Индекс Рэнда, скорректированный на случайность.

Индекс Рэнда вычисляет меру сходства между двумя кластеризациями, рассматривая все пары образцов и подсчитывая пары, которые назначены в одни и те же или разные кластеры в предсказанной и истинной кластеризациях.

Исходный показатель RI затем «скорректирован на случайность» в ARI с помощью следующей схемы:

ARI = (RI - Expected_RI) / (max(RI) - Expected_RI)

Таким образом, скорректированный индекс Рэнда гарантирует значение, близкое к 0,0 для случайной метки независимо от числа кластеров и образцов и точно 1,0, когда кластеризации идентичны (с точностью до перестановки). Скорректированный индекс Рэнда ограничен снизу значением -0,5 для особенно несогласованных кластеризаций.

ARI — это симметричная мера:

adjusted_rand_score(a, b) == adjusted_rand_score(b, a)

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

Parameters:
labels_truearray-like of shape (n_samples,), dtype=int

Метки истинных классов, используемые в качестве эталона.

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

Метки кластеров для оценки.

Returns:
ARIfloat

Показатель сходства в диапазоне от -0,5 до 1,0. Случайные метки имеют ARI, близкое к 0,0. 1,0 означает полное совпадение.

См. также

adjusted_mutual_info_score

Скорректированная взаимная информация.

Ссылки

[Hubert1985]

Л. Хуберт и П. Араби, Сравнение разбиений, Журнал классификации 1985 https://link.springer.com/article/10.1007%2FBF01908075

[Steinley2004]

Д. Стейнли, Свойства скорректированного индекса Рэнда Хуберта-Араби, Психологические методы 2004

[wk]

https://en.wikipedia.org/wiki/Rand_index#Adjusted_Rand_index

[Chacon]

Минимальный скорректированный индекс Рэнда для двух кластеризаций заданного размера, 2022, Дж. Э. Чакон и А. И. Растрохо

Примеры

Совершенно совпадающие метки имеют оценку 1, даже

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

Метки, которые назначают всех членов классов одному кластеру, полны, но не всегда чистые, поэтому они наказываются:

>>> adjusted_rand_score([0, 0, 1, 2], [0, 0, 1, 1])
0.57...

ARI симметричен, поэтому метки, которые имеют чистые кластеры с членами, принадлежащими к тем же классам, но ненужные разделения наказываются:

>>> adjusted_rand_score([0, 0, 1, 1], [0, 0, 1, 2])
0.57...

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

>>> adjusted_rand_score([0, 0, 0, 0], [0, 1, 2, 3])
0.0

ARI может принимать отрицательное значение для особенно несогласованных меток, которые являются худшим выбором, чем ожидаемое значение случайных меток:

>>> adjusted_rand_score([0, 0, 1, 1], [0, 1, 0, 1])
-0.5

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

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

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

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

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

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

Кластеризация текстовых документов с использованием k-means

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

Spec-Zone.ru

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