选择和实施聚类方法:DBSCAN 其他?

Posted

技术标签:

【中文标题】选择和实施聚类方法:DBSCAN 其他?【英文标题】:Choosing and implementing clustering method: DBSCAN something else? 【发布时间】:2014-04-21 15:59:54 【问题描述】:

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

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

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

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】:

首先,它是 DBSCAN,而不是 DB 扫描 - 这是一个缩写词。

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

scipy 实现可以使用距离矩阵。所以只需计算所有距离,选择参数,然后运行函数。 scipy的文档也不错,你看了吗?

【讨论】:

以上是关于选择和实施聚类方法:DBSCAN 其他?的主要内容,如果未能解决你的问题,请参考以下文章

K-means与DBSCAN聚类算法

聚类算法-密度聚类算法DBSCAN

DBSCAN聚类算法

基于密度的聚类方法

聚类算法--DBSCAN

DBSCAN密度聚类算法