У меня есть база данных, которая содержит пары широта / долгота, чтобы определить местоположение достопримечательностей. Я хотел бы сгруппировать точки интереса в группы по 10. Группа должна быть географически локальной и содержать ровно 10 точек. Каждая группа должна иметь минимальную площадь.
Я рассмотрел различные реализации в R, но ни одна из них (что я вижу) не позволяет вам указать определенный размер кластера.
Я ранее спрашивал Группировка точек карты по фиксированным размерам кластера? но я не думаю, что я был достаточно точен в своем вопросе, чтобы получить хороший ответ.
Географически локально - я думаю, что я имею в виду, что группы не должны существенно перекрываться. В моем приложении (распределение людей по группам для целей мониторинга) было бы идеально, если бы каждая группа была как можно меньше в физической области.
Минимальная площадь - опять же, пытаясь удержать групповую область до минимума. Я полагаю, что это может быть количественно определено как поддержание области каждой группы ниже определенного порога (чтобы избежать десятков маленьких групп и одной большой).
источник
Ответы:
Я думаю, что вы, возможно, ищете инструмент k-ближайшего соседа. Этот тип инструмента можно использовать для определения 10 ближайших соседей всех точек в вашем наборе данных. Кажется, есть несколько разных вариантов для этого (некоторые используют разные алгоритмы или имеют немного отличающиеся функциональные возможности), и я не уверен, что будет лучшим вариантом. Но вот несколько ссылок:
http://stat.ethz.ch/R-manual/R-patched/library/class/html/knn.html http://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Classification/kNN
Вам может потребоваться объединить результаты с помощью алгоритма кластеризации или инструмента кластерного ансамбля, чтобы идентифицировать кластеры точек, которые имеют сходные наборы соседей, чтобы получить при классификации точек, где практически нет совпадений. Возможно, вам придется немного поиграться с выводом, но это должно позволить вам автоматизировать большую часть работы.
Некоторые ссылки: http://jmlr.csail.mit.edu/papers/volume3/strehl02a/strehl02a.pdf http://cran.r-project.org/web/packages/clue/vignettes/clue.pdf
Вы также можете найти инструмент кластеризации k-средних, который сделает все это за один шаг и применяет 10 баллов в кластерном правиле (просто разделите общее количество баллов на 10 и выберите его в качестве количества желаемых кластеров для инструмент).
источник