Группировать точки карты в фиксированные размеры кластеров?

10

У меня есть набор данных из 655 лат / длинных пар, которые я хотел бы разделить на около 100 групп. В группе должно быть 5-10 пар, географически близких друг к другу. У плотных групп должно быть больше очков, у разреженных - меньше. Например, городские группировки должны быть больше, а сельские - меньше.

Существует ли установленный алгоритм для такого рода группировки, или я собираюсь разработать его с нуля?

Я использую API Google Maps v3 для отображения этих данных, но так как это фиксированный набор данных, я готов сделать некоторое сокращение числа в автономном режиме.

Грэм Хилтон
источник
4
Множество вариантов становится доступным, когда вы готовы оставить комфорт своей ГИС для проведения специализированных или сложных анализов, подобных этому. Например, проверить все решения кластеризации , доступных с R . (Другие пакеты статистики также предлагают много решений для кластеризации.) Их тоже не нужно много R: вы должны научиться читать ваши координаты, применять процедуру кластеризации и записывать ее результаты (при необходимости). в файл, который ваша ГИС может постобработать.
whuber
Можете ли вы быть явным в определениях размера?
Рафаэль

Ответы:

11

Вы можете проверить алгоритм кластеризации k-средних здесь .

В интеллектуальном анализе данных кластеризация с помощью k-средних представляет собой метод кластерного анализа, целью которого является разделение n наблюдений на k кластеров, в которых каждое наблюдение относится к кластеру с ближайшим средним значением. Это приводит к разбиению пространства данных на ячейки Вороного.

Реализация kmeans-postgresql здесь ... и я недавно познакомился с этой темой. Пространственная кластеризация с PostGIS, вы можете проверить здесь из @Mike Toews с функцией ST_MinimumBoundingCircle ..

Mikey


kmeans

Арагон
источник