Теория

Агломеративный алгоритм

Algo_Agglomerative
<h2>Основной порядок работы</h2> <p>Агломеративная кластеризация начинает с максимально подробного состояния: каждый объект является отдельным кластером. Затем алгоритм много раз объединяет два ближайших кластера, пока не останется один общий кластер или пока пользователь не остановит процесс на нужном числе групп.</p> <ol> <li>Построить начальную матрицу расстояний между объектами.</li> <li>Считать каждый объект отдельным кластером.</li> <li>Найти пару кластеров с минимальным расстоянием.</li> <li>Объединить эту пару в новый кластер.</li> <li>Пересчитать расстояния от нового кластера до остальных.</li> <li>Повторять, пока не будет получена вся иерархия.</li> </ol> <h2>Главный вопрос</h2> <p>После первого объединения в системе появляются кластеры, состоящие из нескольких объектов. Поэтому нужно определить, что такое расстояние между двумя кластерами. Ответ на этот вопрос называется linkage-критерием.</p> <h2>Почему это не K-Means</h2> <p>Агломеративный алгоритм не двигает центроиды на каждой итерации и не перебирает назначения точек. Он принимает последовательность локальных решений: какие два кластера сейчас ближе всего. Уже сделанное объединение обычно не отменяется, поэтому ранние решения могут влиять на всю дальнейшую структуру.</p>