Adjusted Rand Index
Adjusted Rand Index, или ARI, метрика для сравнения найденных кластеров с истинными метками объектов.
По-русски название можно перевести как скорректированный индекс Рэнда.
В обычных задачах кластеризации истинные метки неизвестны. Однако в учебных и тестовых наборах данных они могут быть доступны, чтобы проверить качество алгоритма.
Например, MakeBlobs возвращает не только точки, но и номера групп, из которых эти точки были сгенерированы.
Идея Rand Index
Заголовок раздела «Идея Rand Index»ARI сравнивает два разбиения одних и тех же объектов:
- истинные группы;
- кластеры, найденные алгоритмом.
Для этого рассматриваются все пары объектов.
Если два объекта относятся к одной истинной группе, алгоритм должен поместить их в один кластер.
Если два объекта относятся к разным истинным группам, алгоритм должен поместить их в разные кластеры.
Чем чаще найденная кластеризация правильно сохраняет такие отношения между объектами, тем выше значение ARI.
Adjusted Rand Index дополнительно учитывает, что часть совпадений могла возникнуть случайно.
Интерпретация
Заголовок раздела «Интерпретация»ARI близко к 1 найденные кластеры почти совпадают с истинными меткамиARI около 0 совпадение примерно соответствует случайному разбиениюARI меньше 0 результат хуже случайного разбиенияПример вычисления
Заголовок раздела «Пример вычисления»uses MLABC;
begin var (X, trueLabels) := Datasets.MakeBlobs( n := 300, centers := 3, clusterStd := 0.8, seed := 42);
var model := new KMeans(3, seed := 42);
var labels := model.FitPredict(X);
Println('ARI:', Metrics.AdjustedRandIndex(trueLabels, labels):0:3);end.Результат:
ARI: 0.933Значение 0.933 означает, что найденные кластеры почти полностью совпадают с истинными группами. Небольшая часть объектов была распределена иначе.
Что выбрать
Заголовок раздела «Что выбрать»Adjusted Rand Index используют, когда истинные метки известны и нужно проверить, насколько найденная кластеризация соответствует правильному разбиению.
Если истинных меток нет, используйте Silhouette Score.