Mam bazę danych, która zawiera pary Lat / Long, aby zidentyfikować lokalizację interesujących miejsc. Chciałbym pogrupować interesujące miejsca w grupy po 10. Grupa powinna być geograficznie lokalna i zawierać dokładnie 10 punktów. Każda grupa powinna mieć minimalną powierzchnię.
Patrzyłem na różne implementacje w R, ale żadna z nich (które widzę) nie pozwala ci określić określonego rozmiaru klastra.
Wcześniej pytałem Grupowanie punktów mapy w ustalone rozmiary skupień? ale nie wydaje mi się, żeby moje pytanie było wystarczająco dokładne, aby uzyskać dobrą odpowiedź.
Geograficznie lokalnie - myślę, że mam na myśli, że grupy nie powinny się w znacznym stopniu nakładać. W mojej aplikacji (przydzielanie ludzi do grup do celów monitorowania) byłoby idealnie, gdyby każda grupa była jak najmniejsza w obszarze fizycznym.
Minimalny obszar - ponownie, próbując ograniczyć obszar grupy do minimum. Przypuszczam, że można to określić ilościowo jako utrzymywanie obszaru każdej grupy poniżej określonego progu (aby uniknąć dziesiątek małych grup i jednej dużej).
źródło
Odpowiedzi:
Myślę, że możesz szukać narzędzia najbliższego sąsiada. Tego typu narzędzie może być użyte do identyfikacji 10 najbliższych sąsiadów wszystkich punktów w zbiorze danych. Wydaje się, że istnieje kilka różnych opcji (niektóre używają różnych algorytmów lub mają nieco inne funkcje) i nie jestem pewien, która opcja byłaby najlepsza. Ale oto kilka linków:
http://stat.ethz.ch/R-manual/R-pched/library/class/html/knn.html http://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Classification/kNN
Konieczne może być połączenie wyników z algorytmem klastrowania lub narzędziem do tworzenia klastrów, aby zidentyfikować klastry punktów, które mają podobne zestawy sąsiadów, aby uzyskać klasyfikacje punktów, w których nakładanie się prawie nie występuje. Być może trzeba będzie zrobić trochę ręcznego manipulowania danymi wyjściowymi, ale powinno to pozwolić na zautomatyzowanie dużej części pracy
Niektóre linki: http://jmlr.csail.mit.edu/papers/volume3/strehl02a/strehl02a.pdf http://cran.r-project.org/web/packages/clue/vignettes/clue.pdf
Być może będziesz w stanie znaleźć narzędzie klastrowania k-średnich, które zrobi to wszystko w jednym kroku i wymusi 10 punktów w regule klastrowej (po prostu podziel całkowitą liczbę punktów przez 10 i wybierz to jako liczbę pożądanych klastrów dla narzędzie).
źródło