使用其他属性

时间:2017-05-11 04:23:32

标签: python cluster-analysis hierarchical-clustering

我正在使用包含空间地块的大型集合,每行包含地理坐标(UTM),地块区域和地理坐标。值:

[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],
...

根据地理位置,可以在视觉上识别出几个不同的区域,其中美元价值会有所不同(例如左边的高价值条带是沿海地区):scatter plot, x/y/value

我想识别价值集群(即沿海地带)&看了几种方法;

  • K-means似乎是最容易实现的聚类方法,但却出现了 因为只考虑点之间的距离而不合适 进一步的属性。

  • ClusterPy看起来很适合这个应用程序,但他们的 文档似乎只涉及使用GIS文件。

  • DBSCAN似乎更相关,但我不确定如何包含我的 附加属性($ value) - 可能是第三个维度?

有人可以建议考虑其他任何工具包/方法吗?

2 个答案:

答案 0 :(得分:1)

查看广义DBSCAN(GDBSCAN),它可以轻松地让您需要两者的邻居点

  1. 在距离阈值内(如在常规DBSCAN中)
  2. 价格变化最多10%(以防止沿海地区与常规合并)

答案 1 :(得分:1)

至少在分层聚类中,您可以定义connectivity constraints,以便只有"连接"样本可以属于同一个集群。在您的情况下,xy将由函数sklearn.neighbors.kneighbors_graph()用于创建邻居列表,value变量将用于群集。