DBSCAN不能给出正确的空间运输结果

2024-09-27 22:19:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在涉及纬度和经度的交通数据中形成聚类,但是

我得到了错误的结果,因为它是分类点,即使有中等

在同一簇中它们之间的距离。

缝源纬度

slong-震源经度

    coords = source.as_matrix(columns=['slat', 'slong'])

    kms_per_radian = 6371.0088
epsilon = 2 / kms_per_radian
db = DBSCAN(eps=epsilon, min_samples=3, algorithm='ball_tree', metric='haversine').fit(np.radians(coords))

cluster_labels = db.labels_
source['cluster'] = db.labels_ # source is  the dataset

我试着在cartoDB中画出所有的点,但聚类不正确

因为距离超过2公里的地点在同一个集群中。

拜托,谁能告诉我怎么做得更好

我遵循clustering spatial data中的步骤

我没有遵循cluster center point的步骤,因为我无法在python中导入必要的库。

这就是为什么我的结果不正确的原因。

请告诉我。

简言之,我的目标是复制源和目的地的纬度和经度,正如Grab在文章中所做的那样,图片显示为

enter image description here

文章链接-

Grab clustering rides

请提供关于如何复制它的任何见解


Tags: 距离sourcedblabels聚类coordsclusterclustering
1条回答
网友
1楼 · 发布于 2024-09-27 22:19:31

DBSCAN显式地允许点的距离大于epsilon,只要它们是密度连接的。这就是为什么它被称为基于密度的方法,也就是为什么可以得到任意形状的簇。在

一个簇的任何两个点最多只能相距epsilon,这是一个常见的误解。这被称为完全连锁,将产生近似球形的团簇。在

相关问题 更多 >

    热门问题