选择和实现聚类方法:DBSCAN别的什么?

时间:2014-03-16 13:40:02

标签: cluster-analysis latitude-longitude scikit-learn scikits dbscan

我需要对lat,long坐标的数据集进行聚类。我使用python作为我的语言,并计划使用DBSCAN,因为我不想指定簇的数量。

目标和目的是能够输入lat,long坐标的大数据集,其中附加了许多功能,并分配将返回的群集组。包含[lat long feature1,feature2 ....]形式的条目的原始数据库需要使用名为“cluster group”的新字段进行修改:[lat long clustergroup feature1,feature2 ....]。这将帮助我确定哪些数据点紧密组合在一起,而无需在地图上绘图。我希望异常值将被赋予单独的组ID,并且主要聚集在一起的点将被赋予相同的组ID。

在转换lat后,我对DBSCAN的输入将是x,y坐标,long - > x,y&忽略z坐标。我正在使用:

http://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html#sklearn.cluster.DBSCAN http://scikit-learn.org/stable/auto_examples/index.html

我很难理解如何设置此功能的输入。我可以输入x,y坐标吗?这会是一个元组列表吗?如果有人能帮助我想象这一点,那将是一个很大的帮助。

另外,你能解释一下DBSCAN与层次聚类的区别吗?

1 个答案:

答案 0 :(得分:0)

首先,它是DBSCAN,而不是数据库扫描 - 它是一个ackronym。

DBSCAN要求密集区域具有多个minPts对象。如果选择的minPts值太低(1或2),结果将确实与单链接层次聚类相匹配。所以使用更高的值。

scipy实现可以使用距离矩阵。因此,只需计算所有距离,选择参数,然后运行该功能。 scipy文档也很好,你看过吗?