Criando grupos de pontos a partir de pares lat / long usando R?

11

Eu tenho um banco de dados que contém pares Lat / Long para identificar a localização dos pontos de interesse. Eu gostaria de agrupar os pontos de interesse em grupos de 10. O grupo deve ser geograficamente local e conter exatamente 10 pontos. Cada grupo deve ter uma área mínima.

Eu observei várias implementações no R, mas nenhuma delas (que eu posso ver) permite especificar um tamanho definido de cluster.

Eu anteriormente perguntei Agrupando pontos do mapa em tamanhos de cluster fixos? mas não acho que tenha sido exato o suficiente na minha pergunta para obter uma boa resposta.


Geograficamente local - acho que quero dizer que os grupos não devem se sobrepor significativamente. Na minha aplicação (alocar pessoas a grupos para fins de monitoramento), seria ideal se cada grupo fosse o menor possível na área física.
Área mínima - novamente, tentando manter a área do grupo no mínimo. Suponho que isso possa ser quantificado como mantendo a área de cada grupo abaixo de um limite especificado (para evitar dezenas de pequenos grupos e um grande).

Graeme Hilton
fonte
2
Ajudaria a ser um pouco mais preciso sobre o que você está procurando. Como você quantificaria "geograficamente local" e "área mínima"?
whuber
Em algumas situações, "área mínima" e "exatamente 10 pontos" não são mutuamente exclusivos? Como você pode esperar que ambos sejam usados ​​em, por exemplo, você tem uma "área mínima" de 1,6 km e um recurso que não possui outros recursos em um raio de 16 km (possivelmente um erro externo)?
217127 Ryan GDalton
Espero que haja algumas exceções, mas elas podem ser tratadas manualmente. Eu tenho um conjunto de dados de tamanho fixo e não me importo de mexer manualmente em alguns dos grupos, mas eu realmente gostaria de uma solução automática para o resto! :)
Graeme Hilton
A descrição ainda é "ondulada à mão" para ser solucionada de maneira automatizada. Você pode tornar os dados públicos?
precisa saber é o seguinte

Respostas:

1

Eu acho que você pode estar procurando uma ferramenta de vizinho mais próximo. Este tipo de ferramenta pode ser usado para identificar os 10 vizinhos mais próximos de todos os pontos do seu conjunto de dados. Parece haver algumas opções diferentes para isso (com algumas usando algoritmos diferentes ou com funcionalidades ligeiramente diferentes), e não tenho certeza de qual seria a melhor opção. Mas aqui estão alguns links:

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

Pode ser necessário combinar os resultados com um algoritmo de cluster ou uma ferramenta de conjunto de cluster para identificar grupos de pontos que possuem conjuntos semelhantes de vizinhos para obter classificações de pontos em que há pouca ou nenhuma sobreposição. Talvez você precise fazer um pouco de mexer manualmente com a saída, mas isso deve permitir que você automatize uma grande parte do trabalho

Alguns links: http://jmlr.csail.mit.edu/papers/volume3/strehl02a/strehl02a.pdf http://cran.r-project.org/web/packages/clue/vignettes/clue.pdf

Você também poderá encontrar uma ferramenta de cluster k-means que fará tudo isso em uma única etapa e aplicará os 10 pontos em uma regra de cluster (apenas divida o número total de pontos por 10 e selecione-o como o número de clusters desejados para a ferramenta).

Jezibelle
fonte
Além disso, eu encontrei o Yari tutorial útil para R: ahandel.myweb.uga.edu/resources.htm
Jezibelle