¿Agrupando puntos de mapa en tamaños de clúster fijos?

10

Tengo un conjunto de datos de 655 pares de lat / long que me gustaría dividir en unos 100 grupos. Un grupo debe tener 5-10 pares que están geográficamente cerca uno del otro. Los grupos densos deberían tener más puntos, los grupos dispersos deberían tener menos. Por ejemplo, las agrupaciones urbanas deben ser más grandes, las rurales más pequeñas.

¿Existe un algoritmo establecido para hacer este tipo de agrupación, o tendré que diseñar uno desde cero?

Estoy usando la API de Google Maps v3 para mostrar estos datos, pero como se trata de un conjunto de datos fijo, estoy preparado para hacer algunos cálculos de números sin conexión.

Graeme Hilton
fuente
44
Hay una gran cantidad de opciones disponibles cuando está dispuesto a dejar la comodidad de su SIG para realizar análisis especializados o sofisticados como este. Por ejemplo, echa un vistazo a todas las soluciones de clustering disponibles con R . (Otros paquetes de estadísticas también ofrecen muchas soluciones de agrupación). Tampoco se necesita mucho Rpara usarlos: debe aprender a leer sus coordenadas, aplicar una rutina de agrupación y escribir sus resultados (si es necesario) a un archivo que su SIG puede procesar posteriormente.
whuber
¿Puedes ser explícito en las definiciones de tamaño?
Rafael

Respuestas:

11

Puede consultar el algoritmo de agrupación de k-means aquí .

En la minería de datos, la agrupación de k-medias es un método de análisis de conglomerados que tiene como objetivo dividir n observaciones en k conglomerados en los que cada observación pertenece al conglomerado con la media más cercana. Esto da como resultado una partición del espacio de datos en celdas Voronoi.

Implementación de kmeans-postgresql aquí ... y acabo de conocer este tema Agrupación espacial con PostGIS, puede consultar aquí desde @Mike Toews con la función ST_MinimumBoundingCircle ...

mikey


k significa

Aragón
fuente