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

Список точек (макс. координата = 600):

Количество точек для случайной генерации:
Максимальное количество групп:
Ваш браузер не поддерживается

Суть алгоритма

Использованный метод называется "Метод k средних" (Википедия).

Суть метода:

  1. Нам дано N точек. Также перед началом метода нужно задать количество кластеров К.
  2. Случайным образом разбиваем точки на кластеры.
  3. В каждом кластере ищем среднее арифметическое его точек. В результате для К кластеров имеет К средних точек.
  4. Для каждой из N точек выясняем, к какой средней точке она ближе, и относим её именно к этому кластеру.
  5. Для переделанных таким образом кластеров снова ищем средние и повторяем пункты 3 - 4. Останавливаем процесс тогда, когда средние перестают меняться.

Мои мысли:

  1. Чтобы не быть привязанным к количеству групп, я предлагаю вычислять это количество, исходя из размера населённого пункта. Например, мы зафиксируем, что примерный размер района должен быть 5х5 км, и после этого смотрим: если у нас есть НП размером 10х15 км, значит в таком НП будет 6 районов.