2017-05-11 5 views
0

ich bin mit einem großen Satz Arbeits bestehend aus räumlichen Paketen, wobei jede Zeile mit geographischen Koordinaten (UTM), Baufläche & Wert:Identifizieren räumliche Clustern in Python unter Berücksichtigung von zusätzlichen Attributen

[x, y, area, value]: 
[272564.9434265977, 6134243.108910706, 980.63, 550.6664083293393], 
[272553.9611341293, 6134209.499155387, 1026.55, 477.32696897374706], 
[271292.4197118982, 6132982.047648986, 634.438, 851.1469993915875], 
... 

diese Plotten visuell identifiziert mehrere verschiedene Zonen, in denen Dollar-Wert variiert je nach Geographie (der hohe Wert Streifen auf der linken Seite ist Küsten, zum Beispiel): scatter plot, x/y/value

Ich möchte Cluster von Wert (dh die Küstenstreifen) & haben sich angesehen haben mehrere Annäherungen s;

  • K-Mittel scheint die einfachste Clustering-Verfahren zu implementieren, aber erscheint ungeeignet wegen nur zwischen den Punkten und keine weitere Attribute unter Berücksichtigung Abstand.

  • ClusterPy sieht ideal für diese Anwendung, aber ihre Dokumentation scheint nur die Arbeit mit GIS-Dateien zu decken.

  • DBSCAN scheint relevanter zu sein, aber ich bin mir nicht sicher, wie ich mein zusätzliches Attribut ($ value) - vielleicht als eine dritte Dimension aufnehmen kann?

Kann jemand vorschlagen, andere Toolkits/Ansätze zu berücksichtigen?

Antwort

0

Blick auf verallgemeinerte DBSCAN (GDBSCAN), die leicht ermöglicht es Ihnen Nachbarpunkte zu beide

  1. sein innerhalb einer Entfernung Schwelle erfordern (wie in regelmäßigen DBSCAN)
  2. den Preis haben variieren, indem du höchstens 10% (die Küste zu verhindern, mit dem regulären aus verschmelzenden)
0

mindestens in hierarchischen Clustering kann connectivity constraints solche definieren, die nur „verbunden“ Proben können zu sam gehören der Cluster. In Ihrem Fall würden x und y von der Funktion sklearn.neighbors.kneighbors_graph() verwendet werden, um die Liste der Nachbarn zu erstellen, und die value Variable wird im Cluster verwendet.

Verwandte Themen