Кластеризация

Кластеризация - процесс разбиения некоторого множества объектов на кластеры по тому или иному критерию сходства или близости. При этом обучающего примера распределения объектов по кластеры нет.

Пороговый алгоритм кластеризации

Разберем этот алгоритм - один из самых простых. Есть некоторая функция вычисления близости или сходства объектов:

Часто её нужно задать самим на основе анализа особенностей задачи. Например, это может быть обычное расстояние между объектами, если нужно объединять в один кластер объекты, которые находятся рядом.  Может быть и что-то другое.

Есть некоторый массив объектов,  которые нужно разбить на кластеры:

В результате своей работы пороговый алгоритм найдёт число кластеров (number_of_classes) и сформирует массив с номерами кластеров, которым принадлежат объекты массива x:

Сам пороговый алгоритм выглядит так:

Нулевой элемент массива объявляется центром нулевого кластера, а для каждого следующего элемента массива x находится самый похожий на этот элемент центр кластера (другими словами, вычисляется расстояние до наименее удаленного центра кластера). Если этот найденный центр кластера слишком не похож на текущий элемент (другими словами, расстояние больше некоторого порога thresold, задаваемого программистом), то объявляется о создании нового кластера с центром в текущем элементе. Иначе текущий элемент заносится в кластер к наиболее похожему на него центру.

Результаты работы порогового алгоритма зависят от перестановки элементов массива x и от параметра thresold.

Есть также многие другие алгоритмы кластеризации. Например, алгоритм максимального расстояния и алгоритм внутригрупповых средних.

Не нашли ответ? Не беда, спросите в комментариях.

Ваш e-mail не будет опубликован. Обязательные поля помечены *