首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >fpc::dbscan和dbscan::dbscan之间的结果不同

fpc::dbscan和dbscan::dbscan之间的结果不同
EN

Stack Overflow用户
提问于 2019-03-23 07:12:54
回答 1查看 337关注 0票数 1

我想在一些GPS坐标上用R实现DBSCAN。我有一个距离矩阵(dist_matrix),我将其输入到以下函数中:

dbscan::dbscan(dis_matrix,eps=50,minPts = 5,borderPoints=TRUE) fpc::dbscan(dis_matrix,eps = 50,MinPts = 5,method = "dist")

我从这两个函数得到了非常不同的结果,无论是在聚类数方面,还是在一个点是噪声点还是属于一个聚类点方面。基本上,两种算法之间的结果是不一致的。我不知道为什么他们会产生如此不同的结果,尽管在这里我们可以看到http://www.sthda.com/english/wiki/wiki.php?id_contents=7940对于虹膜数据,两个函数做的是一样的。

我的距离矩阵[来自一个计算2000多个坐标之间的空间距离的函数(geosphere::distm)。

此外,我根据伪代码源代码编写了dbscan代码:https://cse.buffalo.edu/~jing/cse601/fa13/materials/clustering_density.pdf我的结果与我从fpc包中获得的结果相同。有没有人注意到他们为什么不同。我已经检查了这两个函数,但没有找到任何东西。

EN

回答 1

Stack Overflow用户

发布于 2019-03-23 11:36:51

geosphere::distm的文档说明它返回的不是dist对象,而是矩阵。dbscan::dbscan假设您有一个数据矩阵,而不是距离。首先使用as.dist将矩阵转换为dist对象。THis应该可以解决这个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55308935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档