Grupowanie punktów mapy w ustalone rozmiary klastrów?

10

Mam zestaw danych o długości 655 lat / długości, które chciałbym podzielić na około 100 grup. Grupa powinna mieć 5-10 par, które są geograficznie blisko siebie. Grupy gęste powinny mieć więcej punktów, grupy rzadkie powinny mieć mniej. Na przykład grupy miejskie powinny być większe, a wiejskie mniejsze.

Czy istnieje ustalony algorytm tworzenia tego rodzaju grupowania, czy też muszę zaprojektować go od zera?

Korzystam z Google Maps v3 api, aby wyświetlić te dane, ale ponieważ jest to stały zestaw danych, jestem przygotowany na pewne łamanie numerów offline.

Graeme Hilton
źródło
4
Bogactwo opcji staje się dostępne, gdy zechcesz zrezygnować z komfortu swojego GIS do wykonywania specjalistycznych lub wyrafinowanych analiz, takich jak ta. Na przykład, sprawdź wszystkie rozwiązania klastrowe dostępne z R . (Inne pakiety statystyk również oferują wiele rozwiązań klastrowych.) RKorzystanie z nich również nie wymaga wiele łatwości : musisz nauczyć się czytać współrzędne, stosować procedurę grupowania i zapisywać jej wyniki (w razie potrzeby) do pliku, który GIS może przetworzyć.
whuber
Czy potrafisz wyrazić swoje definicje wielkości?
raphael

Odpowiedzi:

11

możesz sprawdzić algorytm grupowania k-średnich tutaj .

W eksploracji danych klastrowanie k-średnich jest metodą analizy skupień, która ma na celu podzielenie n obserwacji na k klastrów, w których każda obserwacja należy do klastra o najbliższej średniej. Powoduje to podział przestrzeni danych na komórki Voronoi.

implementacja kmeans-postgresql tutaj .. i niedawno poznałem ten temat Grupowanie przestrzenne za pomocą PostGIS, możesz sprawdzić tutaj z @Mike Toews z funkcją ST_MinimumBoundingCircle ..

Mikey


kmeans

Aragonia
źródło