我试图在涉及纬度和经度的交通数据中形成聚类,但是
我得到了错误的结果,因为它是分类点,即使有中等
在同一簇中它们之间的距离。
缝源纬度
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在文章中所做的那样,图片显示为
文章链接-
请提供关于如何复制它的任何见解
DBSCAN显式地允许点的距离大于epsilon,只要它们是密度连接的。这就是为什么它被称为基于密度的方法,也就是为什么可以得到任意形状的簇。在
一个簇的任何两个点最多只能相距epsilon,这是一个常见的误解。这被称为完全连锁,将产生近似球形的团簇。在
相关问题 更多 >
编程相关推荐