Теория
Агломеративный алгоритм
<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>