Erstellen von Punktgruppen aus Lat / Long-Paaren mit R?

11

Ich habe eine Datenbank, die Lat / Long-Paare enthält, um den Ort von Sonderzielen zu identifizieren. Ich möchte die Punkte von Interesse in Gruppen von 10 gruppieren. Die Gruppe sollte geografisch lokal sein und genau 10 Punkte enthalten. Jede Gruppe sollte eine Mindestfläche haben.

Ich habe mir verschiedene Implementierungen in R angesehen, aber keine von ihnen (die ich sehen kann) ermöglicht es Ihnen, eine bestimmte Clustergröße anzugeben.

Ich habe zuvor gefragt, ob ich Kartenpunkte in feste Clustergrößen gruppieren möchte. aber ich glaube nicht, dass ich in meiner Frage genau genug war, um eine gute Antwort zu bekommen.


Geografisch lokal - Ich denke, Gruppen sollten sich nicht wesentlich überschneiden. In meiner Anwendung (Zuordnung von Personen zu Überwachungszwecken zu Gruppen) wäre es ideal, wenn jede Gruppe im physischen Bereich so klein wie möglich wäre.
Minimale Fläche - Versuchen Sie erneut, die Gruppenfläche auf ein Minimum zu beschränken. Ich nehme an, dies könnte quantifiziert werden, indem der Bereich jeder Gruppe unter einem bestimmten Schwellenwert gehalten wird (um Dutzende kleiner und eine große Gruppe zu vermeiden).

Graeme Hilton
quelle
2
Es wäre hilfreich, etwas genauer zu sagen, wonach Sie suchen. Wie würden Sie "geografisch lokal" und "Mindestfläche" quantifizieren?
whuber
Schließen sich "Mindestfläche" und "genau 10 Punkte" in einigen Situationen nicht gegenseitig aus? Wie können Sie erwarten, dass beide verwendet werden, z. B. wenn Sie eine "Mindestfläche" von 1 Meile haben und 1 Feature, das innerhalb von 10 Meilen keine anderen Features aufweist (möglicherweise ein Ausreißer)?
RyanKDalton
Ich gehe davon aus, dass es einige Ausnahmen geben wird, die jedoch manuell behandelt werden können. Ich habe einen Datensatz mit fester Größe und es macht mir nichts aus, einige der Gruppen manuell zu fummeln, aber für den Rest hätte ich wirklich gerne eine automatische Lösung! :)
Graeme Hilton
Die Beschreibung ist immer noch zu "handgewellt", um automatisiert lösbar zu sein. Können Sie die Daten veröffentlichen?
BradHards

Antworten:

1

Ich denke, Sie suchen vielleicht nach einem Werkzeug für den nächsten Nachbarn. Diese Art von Werkzeug kann verwendet werden, um die 10 nächsten Nachbarn aller Punkte in Ihrem Datensatz zu identifizieren. Hierfür scheint es einige verschiedene Optionen zu geben (wobei einige unterschiedliche Algorithmen verwenden oder leicht unterschiedliche Funktionen haben), und ich bin mir nicht sicher, welche die beste Option wäre. Aber hier sind ein paar 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

Möglicherweise müssen Sie die Ergebnisse mit einem Clustering-Algorithmus oder einem Cluster-Ensemble-Tool kombinieren, um Cluster von Punkten mit ähnlichen Nachbarn zu identifizieren, um Klassifizierungen von Punkten zu erhalten, bei denen es kaum oder gar keine Überlappungen gibt. Möglicherweise müssen Sie ein wenig manuell an der Ausgabe herumspielen, aber es sollte Ihnen ermöglichen, einen großen Teil der Arbeit zu automatisieren

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

Möglicherweise können Sie auch ein k-means-Clustering-Tool finden, das dies alles in einem Schritt erledigt und die 10 Punkte in einer Clusterregel erzwingt (dividieren Sie einfach die Gesamtzahl der Punkte durch 10 und wählen Sie diese als Anzahl der gewünschten Cluster für aus das Werkzeug).

Jezibelle
quelle
Außerdem fand ich das YaRi-Tutorial hilfreich für R: ahandel.myweb.uga.edu/resources.htm
Jezibelle