0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于随机分区的超快并行DBSCAN算法介绍

冬至配饺子 来源:时空实验室 作者:CUST团队-李文慧 2022-08-02 18:14 次阅读

DBSCAN是一种基于密度的空间聚类算法。如在点p邻域范围内的点达到一定数量则点p称为核心点,若点q在p的邻域范围内,则p直接密度可达q,且p、q属于同一密集区域。由这种关系连接的最大数据点集形成一个簇。DBSCAN算法有检测任意形状的簇、不需要提前知道检测簇的数量等优点。随着近年来大规模并行化的热潮,又出现了许多并行DBSCAN算法。大多数并行DBSCAN算法中,为并行地发现直接密度可达关系,相邻的点被分配到相同的数据分区中进行并行处理,以方便计算相邻点的密度。但是,这种数据分区方案会导致一些问题,如分割成本大、子区域重叠、数据分区之间的负载不平衡等,其中负载问题在分布不均匀的数据集中尤为体现。

为了解决这些问题,本文提出了一种新的并行DBSCAN算法,随机分区DBSCAN,简称RP-DBSCAN,它使用伪随机划分和两级单元格字典。伪随机划分是一种基于单元格的数据划分方案,它可以随机采样小的单元格,而不是点本身。无论数据如何分布,它都可以实现负载平衡,同时保持DBSCAN所需的数据连续性。两级单元格字典是整个数据集的一个高度凝炼的摘要,来表示每个随机分区。该算法能够实现同时找到每个数据分区的局部聚类,然后将这些局部聚类合并得到全局聚类。

一.伪随机划分

本文定义d维空间中的一个单元格是一个对角线长度为ε 的d维超立方体,ε 是一个表示邻域半径的参数。如果至少有一个数据点位于一个密集区域内,则可以保证该单元格中的所有数据点都属于同一簇。这大大简化了之后的聚类合并过程。在进行数据分区时,我们随机采样单元格,而不是采样数据点,因此称为伪随机划分。然后,将相同颜色的单元格及其内部的数据点划分为同一个分区。由于ε 远小于整个空间的长度,这种划分也可以实现真正的随机划分的效果。图 1 说明了伪随机分区的思想,不同颜色代表不同分区。

poYBAGLo96uAYrieAABXgo6-Kks728.png

图1 伪随机划分

二.两级单元格字典

两级单元格字典是整个数据集的一个摘要。本质上它是一个两级的树。第一级的节点对应单元格,第二级的节点对应子单元格,其边长为单元格的h分之一,其中h由用户给出以指定近似度。每个节点编码每个(子)单元格的密度及其位置。密度是其内部的点数,而位置可以用它们所属单元内的子单元的顺序来表示,故只用d(h− 1)位。(d是维度,h是字典级数)如图 2,h = 2,d= 2,只需两位来表示子单元格位置(00,01,10,11)。

pYYBAGLo9-SAL7HlAACMb2C3O7M436.png

图2 两级单元格字典的构建

因此,可以得出两级单元格字典总大小为

poYBAGLo9_aAHXeCAABA7NfnqPQ155.png

如果数据集非常大,由于内存的限制,有可能无法立即加载整个两级单元格字典,因此把字典划分成较小的子字典,它由根节点集合的一个子集以及与它们连接的叶节点组成。

三. 算法实现的三个阶段

1. 数据分区

通过伪随机划分对整个数据集进行分区,并构建两级单元格字典,为并行处理做好准备。向并行系统中的每个工作者发送一个分区和对应的两级单元格字典。如图3,整个空间被划分为诸多单元格,其中没有为空区域创建单元格。将黄色和绿色单元格划分到两个不同的分区P1和P2中。然后为每个分区生成一个两级单元格字典。

pYYBAGLo-AyAZPmDAABr0Xs66Po037.png

图3 数据分区

2. 单元格图的构造

通过(ε, ρ)区域查询的方式区分单元格是否为核心单元格,构造单元格图时将排除非核心单元格。如图3中的Cnc1-Cnc5判断为非核的,它们在图4中将被排除。然后,从每个分区的每个核心单元搜索其所有完全或部分直接可达的单元格来构建一个单元图。这些单独的关系可以在单元格级别上进行聚合,从而生成一个单元格图。单元格图的顶点是单元格,边是单元格之间的可达性关系。总的来说,一个单元格图表示从一个给定的分区中获得的局部聚类。

pYYBAGLo-B6AYjD6AAB59PRKtRs912.png

图4 单元格图构造

(ε, ρ)区域查询:

如图5所示,若点p与子单元格中心scn的距离小于ε ,那么,就将这个子单元格加入到点p的邻居集合当中。当点p的邻居点数大于等于设定的参数minPts,就把包含p的单元格标记为核心单元格。

poYBAGLo-D-AE6__AABp0mwIOXk495.png

图5 (ε,ρ)区域查询

3. 单元格图的合并

这一部分主要包括渐进式图合并和点标记两个过程。首先,结合从每个工作者返回的对应每个分区的单元格图,确认每条边直接可达性关系,以合并成全局单元格图。之后,根据合并后的图对聚类进行扩展,并根据最终的聚类结果来标记所有的点。整个过程就是由局部聚类产生全局聚类。例如在图 6 中,单元格图简单合并后要进行边类型检测,即判断是完全边(深色实线),部分边(实线箭头)还是未知边(虚线箭头),还要进行减边操作,根据树的结构去除冗余边,最终得到一个树式的全局单元格图。然后,图 7 中进行点标记,图4中位于P1和P2左下角的单元格在图 7 中形成了一个C1簇,将单元格其中的点标记为同一个颜色,即为最终聚类的结果。

pYYBAGLo-FSAc8E1AABea8qfc-M330.png

图6 渐进式图合并

poYBAGLo-GWAamDyAABXZ_erRbQ964.png

图7 点标记

四. 总结

本文提出采用随机划分策略并行运行DBSCAN。为此,提出了一种基于单元格的数据分割策略,即伪随机划分,它具有区域划分策略和随机划分策略的优点。为了能够在随机分割上执行区域查询,本文设计了两级单元格字典,它是整个数据集的一个高度凝炼的摘要。将它们放在一起,开发了一个高效的并行DBSCAN算法RP-DBSCAN。本文使用GeoLife,Cosmo50,OpenStreetMap等大规模数据集进行实验,将RP-DBSCAN与SPARK-DBSCAN,ESP-DBSCAN等其它6种算法进行效率和精确度的对比。结果显示,RP-DBSCAN更快,更精准,更高效且可扩展性强。RP-DBSCAN显著地超过了最先进的并行DBSCAN算法高达180倍。此外,只有RP-DBSCAN可以处理最大的362GB数据集,而其他算法则不能,有力地验证了其性能的优越性。本文的研究工作显著地提高了DBSCAN算法在大数据时代的可用性。


审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码
    +关注

    关注

    6

    文章

    914

    浏览量

    54646
  • DBSCAN
    +关注

    关注

    0

    文章

    7

    浏览量

    10403
  • DBSCAN算法
    +关注

    关注

    0

    文章

    3

    浏览量

    1239
收藏 人收藏

    评论

    相关推荐

    合科泰恢复二极管ES1JL产品介绍

    恢复二极管具有开关特性好、反向恢复时间超短等特点,在开关电源、PWM脉宽调制器、变频器等中作为开关和整流器件。本期,合科泰给大家介绍一款
    的头像 发表于 08-05 10:02 221次阅读
    合科泰<b class='flag-5'>超</b><b class='flag-5'>快</b>恢复二极管ES1JL产品<b class='flag-5'>介绍</b>

    刚刚,国内光纤激光器获重要进展

    来源:激光行业观察 编辑:感知芯视界 Link 华南师范大学光电科学与工程学院研究员罗智和教授徐文成团队在国家自然科学基金、广东省自然科学基金等项目的资助下,在孤子光纤激光器的研究方面取得重要
    的头像 发表于 08-05 09:12 174次阅读

    如何采用分区架构提升车辆的简易性

      各种车辆功能推陈出新,传统的域架构 (Domain Architecture)也面临挑战。本文将介绍交通运输行业如何采用分区架构 (Zonal Architecture)来提升车辆的简易性、效率
    的头像 发表于 07-11 15:59 503次阅读

    CO2通与百聚焦镜选择方法

    CO2通与百聚焦镜选择方法
    发表于 04-23 11:56 0次下载

    GGII:新上市充车型15款,中国充版车型销量有望5万辆

    GGII预计2024年中国新上市充车型(平均充电倍率大于2C)15款,中国充版车型销量有望5万辆。
    的头像 发表于 04-15 09:17 697次阅读
    GGII:新上市<b class='flag-5'>快</b>充车型<b class='flag-5'>超</b>15款,中国<b class='flag-5'>快</b>充版车型销量有望<b class='flag-5'>超</b>5万辆

    什么是激光器?

    一、激光器的概念 激光器通常指用于发射超短脉冲的锁模激光器,例如,持续时间为飞秒或皮秒的脉冲。更精确的叫法应为超短脉冲激光器。而超短脉冲激光器几乎都是锁模激光器,然而增益开关效
    的头像 发表于 04-08 06:33 570次阅读
    什么是<b class='flag-5'>超</b><b class='flag-5'>快</b>激光器?

    昊铂充站已1200座,15分钟充续航450km

    根据官方介绍,昊铂超级充换电站单枪最大功率为640kW,配备长驻于1000V高压电源的充桩,与800V特高压充技术相适应,15min充电可满足450km的续航要求。
    的头像 发表于 04-01 15:39 454次阅读

    什么是随机森林?随机森林的工作原理

    随机森林使用名为“bagging”的技术,通过数据集和特征的随机自助抽样样本并行构建完整的决策树。虽然决策树基于一组固定的特征,而且经常过拟合,但随机性对森林的成功至关重要。
    发表于 03-18 14:27 2482次阅读
    什么是<b class='flag-5'>随机</b>森林?<b class='flag-5'>随机</b>森林的工作原理

    激光技术及其应用

    激光技术及其应用  激光技术是一种非常先进的光学技术,它利用激光脉冲进行高精度的物质
    的头像 发表于 12-20 15:35 633次阅读

    oracle数据库分区有哪些

    Oracle数据库的分区是指将表或索引的数据划分为不同的部分,使得数据存储和查询变得更加高效。分区可以根据许多不同的方式进行,以满足不同的需求。本文将详细介绍Oracle数据库的分区
    的头像 发表于 12-05 16:18 1772次阅读

    如何在Ubuntu Linux上释放/boot分区中的空间

    在Ubuntu Linux上,/boot分区是用于存储启动相关的文件的。随着时间的推移,这个分区可能会变满,导致系统无法安装新的内核和更新。本文将介绍如何释放/boot分区中的空间,并
    的头像 发表于 11-28 10:04 669次阅读

    如何使用雪花算法生成真正的随机

    以前用rand和srand生成过伪随机数,伪随机数的序列是固定的,今天学习生成真正的随机数的生成。 熵池 利用/dev/urandom可以生成随机数的值,/dev/urandomLin
    的头像 发表于 10-09 10:05 1162次阅读

    SVPWM的原理及法则推导和控制算法介绍

    包含SVPWM的算法介绍,基本原理,以及详细的公式推导,详细的图表示意,是初学FOC,准备自己手写FOC库或者理解FOC算法的工程师的有利手册,手册中也简单介绍了SVPWM与SPWM的
    发表于 10-07 09:13

    SystemVerilog的随机约束方法

    上一篇文章《暗藏玄机的SV随机化》介绍了SystemVerilog的各种随机化方法,本文将在其基础上引入SystemVerilog的随机约束方法(constraints)。通过使用
    的头像 发表于 09-24 12:15 1194次阅读

    基于Python实现随机森林算法

    机器学习算法是数据挖掘、数据能力分析和数学建模必不可少的一部分,而随机森林算法和决策树算法是其中较为常用的两种算法,本文将会对
    的头像 发表于 09-21 11:17 1025次阅读
    基于Python实现<b class='flag-5'>随机</b>森林<b class='flag-5'>算法</b>