Creazione di gruppi di punti da coppie lat / long usando R?


11

Ho un database che contiene coppie Lat / Long per identificare la posizione dei punti di interesse. Vorrei raggruppare i punti di interesse in gruppi di 10. Il gruppo dovrebbe essere geograficamente locale e contenere esattamente 10 punti. Ogni gruppo dovrebbe avere un'area minima.

Ho esaminato varie implementazioni in R, ma nessuna (che posso vedere) ti consente di specificare una dimensione del cluster definita.

In precedenza avevo chiesto di raggruppare i punti della mappa in cluster di dimensioni fisse? ma non credo di essere stato abbastanza esatto nella mia domanda per ottenere una buona risposta.


Geograficamente locale - penso di voler dire che i gruppi non dovrebbero sovrapporsi in modo significativo. Nella mia applicazione (allocare le persone ai gruppi a scopo di monitoraggio) sarebbe l'ideale se ogni gruppo fosse il più piccolo possibile nell'area fisica.
Area minima : di nuovo, cercando di mantenere al minimo l'area del gruppo. Suppongo che questo potrebbe essere quantificato nel mantenere l'area di ciascun gruppo al di sotto di una soglia specificata (per evitare dozzine di piccoli gruppi e uno grande).


2
Aiuterebbe ad essere un po 'più preciso su ciò che stai cercando. Come quantificheresti "geograficamente locale" e "area minima"?
whuber

In alcune situazioni, "area minima" e "esattamente 10 punti" non si escludono a vicenda? Come puoi aspettarti che vengano utilizzati entrambi, ad esempio, hai una "area minima" di 1 miglio e 1 funzione che non ha altre funzioni entro 10 miglia (un valore anomalo, possibilmente)?
RyanKDalton,

Mi aspetto che ci siano alcune eccezioni, ma queste possono essere gestite manualmente. Ho un set di dati di dimensioni fisse e non mi dispiace armeggiare manualmente alcuni dei gruppi, ma mi piacerebbe davvero una soluzione automatica per il resto! :)
Graeme Hilton,


La descrizione è ancora troppo "ondulata a mano" per essere risolvibile in modo automatizzato. Puoi rendere pubblici i dati?
BradHards il

Risposte:


1

Penso che potresti essere alla ricerca di uno strumento k vicino più vicino. Questo tipo di strumento può essere utilizzato per identificare i 10 vicini più vicini di tutti i punti nel set di dati. Sembra che ci siano alcune diverse opzioni per questo (con alcuni che usano algoritmi diversi o con funzionalità leggermente diverse), e non sono sicuro quale sarebbe l'opzione migliore. Ma ecco alcuni link:

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

Potrebbe essere necessario combinare i risultati con un algoritmo di clustering o uno strumento di ensemble di cluster per identificare cluster di punti che hanno insiemi di vicini simili per ottenere classificazioni di punti in cui vi è una sovrapposizione minima o nulla. Potrebbe essere necessario fare un po 'di manipolazione manuale dell'output, ma dovrebbe consentire di automatizzare gran parte del lavoro

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

Potresti anche essere in grado di trovare uno strumento di clustering k-mean che lo farà in un solo passaggio e imporre il punto 10 in una regola del cluster (basta dividere il numero totale di punti per 10 e selezionarlo come il numero di cluster desiderati per lo strumento).


Inoltre, ho trovato il tutorial di YaRi utile per R: ahandel.myweb.uga.edu/resources.htm
Jezibelle,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.