В теории графов существует иерархическая кластеризация .Вы можете выполнить кластеризацию снизу вверх или сверху вниз.
Снизу вверх
- определить метрику расстояния (евклидово, манхэттенское ...)
- начать с каждой точки в своем кластере
- объединить два ближайших кластера
Существует три способа выбора ближайшего кластера:
- полная ссылка ->два кластера с наименьшим максимальным попарным расстоянием
- одиночная ссылка -> два кластера с наименьшим минимальным попарным расстоянием
- среднее звено -> среднее расстояние между всеми попарными расстояниями
Кластеризация с одиночной связью может быть решена с помощью алгоритма минимального связующего дерева Крускалова, однако, хотя его легко понять, он работает за O (n ^ 3).Существует вариация алгоритма Прима для MST, которая может решить эту проблему за O (nˇ2).
Нисходящий или разделительный анализ Начать со всех точек в одном кластере и разделить кластеры в каждомитерация.
разделительный анализ .
Существуют другие алгоритмы кластеризации, которые вы можете использовать в Google, некоторые уже упоминались в других ответах.Я не использовал других, поэтому я оставлю это.