CN108897820B - 一种denclue算法的并行化方法 - Google Patents
一种denclue算法的并行化方法 Download PDFInfo
- Publication number
- CN108897820B CN108897820B CN201810641090.0A CN201810641090A CN108897820B CN 108897820 B CN108897820 B CN 108897820B CN 201810641090 A CN201810641090 A CN 201810641090A CN 108897820 B CN108897820 B CN 108897820B
- Authority
- CN
- China
- Prior art keywords
- data
- density
- grid
- point
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出一种DENCLUE算法的并行化方法,可以用于大规模数据聚类分析的环境中,通过改进DENCLUE算法的并行化聚类方法,相比传统的集中式执行方法,本发明达到了更快的数据处理速度。此方法主要包括以下步骤:步骤1:划分原始数据;步骤2:并行建立数据空间中网格关联映射;步骤3:生成全局网格关联映射,步骤4:并行挖掘聚。该DENCLUE算法的并行化方法有效提高了数据划分速度以及最终聚类速度,使算法的执行速度得到提升。
Description
技术领域
本发明属于数据聚类算法领域,具体涉及一种DENCLUE算法的并行化方法。
背景技术
随着相关技术的快速发展,系统和软件功能不断完善增强,运行时所采集的如日志记录、监控数据等信息逐步向着高维度、海量增长发展。重要问题则在于如何发现隐藏于这些数据中有价值的信息。
数据挖掘是发现数据内在规律,提取关键信息的重要手段。聚类作为一类重要的数据挖掘技术,将数据按照相似度分类,使得同一类中的数据相似度较高,而类之间数据的相似度较低。
DENCLUE算法是由Alexander Hinneburg等人在1998年提出的一种致力于发现局部极值的密度聚类方法,可以用于发现球状或任意形状的聚类,对于高噪声的数据集也能正常处理。该算法组织灵活、效率明显高于传统密度聚类算法。其基本思想是每个数据点对其邻域造成的影响可以以一种影响函数来表示,所有点的影响函数之和被称为全局密度函数。DEN CLUE算法的密度函数中存在若干局部极大值点,被称为密度吸引子。每个数据点都被附近某个密度吸引子所吸引。找到所有密度吸引子,建立密度吸引子之间的连接关系从而形成聚类。
DENCLUE算法是一种单机算法,在原始数据映射和密度吸引子计算的过程涉及大量计算,且需要将中间结果保存在内存中。当处理高维的海量数据集时,非并行的执行方式使得计算速度缓慢,甚至可能产生内存溢出的风险。因此原始的DENCLUE算法难以适应大规模数据的聚类分析场景。
发明内容
为了使原始DENCLUE算法适应大规模数据聚类的要求,本发明提出了一种多计算节点上并行聚类的方法。
本发明的DENCLUE算法的并行化方法,包括如下步骤:
S1:划分原始数据。利用简单随机抽样将原始数据划分为与节点数对应的多个数据分块。具体包括步骤:
S11:使用简单随机抽样方法,将原始数据集平均切分后交由各节点进行简单随机抽样。
S12:由S11得到的简单抽样结果形成各节点使用的数据分块。
S2:并行建立网格关联映射。各节点并行处理数据分块,初始化网格关联映射,并持续更新网格直到数据处理完毕。具体包括步骤:
S21:确定聚类算法所使用的输入参数。
S22:在各节点上初始化记录网格统计信息的关联映射map。
S23:处理数据分块中的每一个数据点,同时更新关联映射map。
S3:生成全局网格关联映射。合并所有计算节点在S2生成的关联映射,形成全局网格关联映射;将所有网格划分为多个独立的子集,为下一阶段并行聚类作数据准备。具体包括步骤:
S31:中心节点汇总所有节点生成的map,合并为全局关联映射,并将内部数据点数量达到阈值的网格标记为稠密网格。
S32:由网格之间的距离关系形成一系列以稠密网格为核心的局部区域。
S33:多个局部区域合并形成联合区域,保证联合区域之间相互独立,使聚类过程可以并行执行在各联合区域上。
S4:并行挖掘聚类。将S3得到的各独立子集分发到计算节点进行并行聚类挖掘,最后合并得到最终聚类结果。具体包括步骤:
S41:联合区域数据分发到各并行节点。
S42:在节点上启动迭代爬坡算法,找到所有数据点对应的密度吸引子。
S43:合并满足条件的密度吸引子,将被合并的密度吸引子标记为同属一个类簇。
S44:汇总各节点得到的聚类结果,得到最终聚类结果。
附图说明
图1为本发明的并行聚类算法的整体框架图。
图2为本发明的数据映射和网格划分流程示意图。
图3为本发明的并行化DENCLUE算法本地执行流程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的整体流程架构如图1所示,步骤S1~S3表示的数据映射和网格划分流程图如图2所示。
S1:划分原始数据,按照计算节点数量将原始数据划分为同等个数的数据分块。
S11:根据计算节点的数量n,从起始位置开始将原始数据集顺序平均划分为n个子数据集,以subseti的形式发往各节点进行简单抽样,每次抽样生成[i,data]形式的二元组,其中i为1到n的随机编号,data是一次抽样得到的数据。
S12:汇总节点将S11得到的各二元组按照编号分类,并将相同编号下的所有数据合并为一个数据分块发送到对应编号的计算节点。
S2:并行建立数据空间中网格关联映射。计算节点将得到的数据分块中所有数据映射到空间网格内,并维护记录网格的关联映射。
S21:聚类参数的确定。根据原始数据集的基本情况确定影响值σ、密度阈值ξ、稠密网格阈值ξc。σ用于表示数据之间的关联程度大小。ξ反映数据集的噪声水平,应根据噪声数据的平均密度决定该值。ξc是一个由用户指定的正整数值,包含点数量不小于ξc的网格被认为是稠密的。
S22:初始化网格关联映射。原始数据被划分为若干以2σ为边长的d维网格,并使用c作为单个此类网格的一般表示形式。每个计算节点各自初始化一个被称为关联映射的哈希映射map,包含<key,c>形式的键值对,其键key是一个d维网格在数据空间指定位置的投影值,参数c是一个二元数组,用于表征键key指代的网格,其中参数c包括映射到当前网格的数据点数量Nc,以及所述数据点的特征向量在各个维度上的线性和sum=∑X∈cX,其中X是c中某一数据点x对应的特征向量。
S23:更新关联映射map。该步骤将一个原始数据分块转换为一个记录了若干网格信息的map,各数据点的信息被融合到对应的网格内。
节点从各自的数据分块中一个数据点x对应的特征向量X,通过映射函数project(X)得到x所属网格的空间投影值key,即key=project(x);
搜索map,如果key不存在于map中,则更新键key指代的网格的参数c,再将键值对<key,c>加入所述关联映射map中,所述参数c的更新包括:更新数据点数量:Nc=Nc+1,以及线性和sum=sum+X,其中Nc、sum的初始值均为0;
同时,新建键值对<key,c>并将其加入map中。从而使得记入map中的网格的数据点数量Nc不小于1,即计算节点仅记录有效网格。
重复步骤S23直到所有数据点处理完毕。
S3:全局网格关联映射合并与区域划分。首先合并各计算节点在S2生成的关联映射map,然后将所有网格划分为若干相互独立的联合区域。
S31:合并各局部关联映射。随机选择一个计算节点作为中心节点接收各计算节点在步骤S2中生成的map。
将具有相同key的k个键值对<key,ci>中的参数ci进行合并,合并方式为数据点数量线性和其中i为k个键key相同的网格区分符,表示参数ci的数据点数量,sumi表示映射到参数ci的数据点的特征向量在d个维度上的线性和。合并完成后计算网格的均值mean(c)=sum/Nc。最终得到网格集合Cp,并将Nc≥ξc的网格加入稠密网格集合Cpp。
数据空间中一组有效网格,经过该步骤处理后生成若干以稠密网格为核心的类似超球体的局部区域,这些局部区域可能有部分重叠或完全不相交。
遍历全局map中每个键值对<key,c>,若Nc≥ξc则c为稠密网格。
对于稠密网格c1与c2,若满足距离关系d(mean(c1),mean(c2))≤4σ,则记为conn(c1,c2),即表示两个稠密网格c1与c2存在连接关系。
S33:生成多个局部区域组成的联合区域Cs2。
局部区域可以看作多个网格的聚合,联合区域则可看作多个局部区域的聚合;不同之处在于局部区域之间可能产生重叠,而联合区域之间必定是相互独立的。根据密度吸引子挖掘时涉及的局部范围大小及其相互合并的条件,构建若干个相互独立的联合区域,即任意一个类簇都不会跨越两个或以上的联合区域,因此各联合区域之间的聚类可以并行执行。
其中,一个Cs2应同时满足下述三个条件:
(2)对任意稠密网格ci,cj∈Cs2,满足d(mean(c1),mean(c2))≤13σ;或存在一条由局部区域构成的链路对于链路中任意存在满足d(mean(ck),mean(ck+1))≤13σ;
(3)对于任意稠密网格ci∈Cs2与任意cj∈Cpp-Cs2,均不满足d(mean(ci),mean(cj))≤13σ。
例如,假设稠密网格ci、cj的均值点恰好位于网格中心,两个网格分别属于局部区域 且均处于局部区域最边缘位置,即与中心稠密网格的距离为4σ。若cj还同时属于则当ci与cj的距离最大,即d(mean(ci),mean(cj))=8σ时,与恰如两个相切的超球体,共同构成的区域中相距最远的两个网格平均距离为12σ。因此局部区域联合的阈值不应低于12σ,而本发明优选的阈值设置为13σ。
S4:并行挖掘聚类。将S33得到的若干个联合区域Cs2(密集网格子集)分发到计算节点进行并行聚类挖掘,最后合并得到最终聚类结果。步骤S4的流程图如图3所示。
S41:网格子集Cs2分发到计算节点。由于各个Cs2子集之间没有重叠且保证其内部的类簇是完整的,因此将各密集网格子集Cs2分发到各计算节点进行聚类挖掘。
S42:在网格子集Cs2上挖掘聚类。首先计算密度吸引子,再由密度吸引子的合并得到聚类。
其中,计算密度吸引子的方式可类比为一个爬坡过程:在许多数据点的影响函数叠加而形成的密度函数场中,从某点出发逐步逼近其附近的极大值点,当迭代路径上密度函数值由上升变为下降趋势时,即表示密度吸引子被找到。对于数据空间内的任意点x∈c,以高斯函数作为影响函数,其全局密度函数以下式表示。
其中N为全部数据点的数量,xi为数据集中第i个点。实际计算密度函数时,在
在迭代过程中,靠近迭代点xk的数据点通常与其拥有相同的密度吸引子,因此将xk附近σ/2范围内的数据点的密度吸引子也标记为x*。从而避免对该σ/2范围内的数据点的密度吸引子的迭代查找处理。
重复步骤S42,直到找到Cs2内每个点的密度吸引子,并由所有密度吸引子得到密度吸引子集合X。
例如,要寻找数据点x0的密度吸引子,首先得到x0的近邻点集合near(x0),并以x0为起点利用迭代式寻找下一个点xk,计算xk处的密度函数值当的值小于时,将xk-1设置为x0的密度吸引子,同时记录下xk-1附近σ/2范围内的数据点,设置这些数据点的密度吸引子为xk-1。
S43:合并密度吸引子。将S42得到的密度吸引子集合X中的各x*进行合并得到类簇,若某个x*无法与其它吸引子合并,则将其所包含的数据被标记为噪声。
满足下列要求的吸引子将被合并:
对合并得到的每个类簇,赋予一个全局唯一的编号,以<CIDi,list(data)>的形式记录下来。
S44:得到最终聚类结果。中心节点汇总各个计算节点得到的<CIDi,list(data)>,直接合并后即得到最终聚类结果。
综上所述,本发明所提供的一种DENCLUE算法的并行化方法,能有效提升算法的执行速度。通过改进DENCLUE算法,采用二阶段并行化聚类方法,相比传统的集中式执行方法,本发明有效提高了数据划分速度以及最终聚类速度,使算法的执行速度得到提升,更适用于大规模数据聚类分析的环境中。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read Only Memory,简称:ROM)、随机存取器(英文:Rando m Access Memory,简称:RAM)、磁盘或光盘等。
以上所述仅为本发明的实施例而己,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (3)
1.一种用于大数据处理的DENCLUE算法的并行化方法,其特征在于,所述并行化方法包括以下步骤:
S1)按照计算节点数量将原始数据划分为同等个数的数据分块;
S2)各计算节点将所述数据分块分别映射到空间网格,并维护记录所述空间网格的关联映射;
S3)各计算节点合并所述关联映射,并根据合并后的所述关联映射划分为若干相互独立的联合区域;
S4)将所述若干相互独立的联合区域分发到各计算节点进行并行聚类挖掘,最后输出合并得到的最终聚类结果;
其中,所述步骤S1)具体包括以下步骤:
S11)根据计算节点的数量n从起始位置开始将原始数据集顺序平均划分为n个子数据集,并发往各计算节点,基于简单抽样在各计算节点上生成[i,data]形式的二元组,其中i为1到n的随机编号,data是一次抽样得到的数据;
S12)将所述二元组按照所述随机编号分类,将拥有相同随机编号的数据合并为一个数据分块发送到对应编号的计算节点上;
所述步骤S2)具体包括以下步骤:
S21)根据原始数据确定聚类参数,所述聚类参数包括影响值σ、密度阈值ξ和稠密网格阈值ξc,其中所述影响值σ用于表示数据之间的关联程度大小;
S22)将原始数据在数据空间中的取值范围划分为若干边长为2σ、维度为d的网格,d对应原始数据的特征向量的维度;
S23)每个计算节点根据各自的数据分块构建记录网格统计信息的哈希映射map:
每个计算节点各自初始化一个哈希映射map,所述哈希映射map为包含<key,c>形式的键值对,其中键key表示一个网格在数据空间指定位置的投影值,参数c是一个二元数组,用于表征键key指代的网格,其中参数c包括映射到当前网格的数据点数量,以及所述数据点的特征向量在各个维度上的线性和;
每个计算节点基于各自的数据分块对所述哈希映射map进行更新:
并判断特征向量X所属的网格的空间投影值key是否存在于哈希映射map中,若不存在,则更新键key指代的网格的参数c,再将键值对<key,c>加入所述关联映射map中,所述参数c的更新包括:更新数据点数量:Nc=Nc+1,线性和sum=sum+X,其中Nc、sum的初始值均为0;
所述步骤S3)具体包括以下步骤:
S31)随机选择一个计算节点作为中心节点,用于接收各计算节点生成的所述关联映射map;
中心节点对具有相同键key的键值对<key,ci>中的参数ci进行合并,得到合并网格cp,其中下标i为相同键key网格区分符,所述合并网格cp的数据点数量线性和sump=∑sumi,其中表示参数ci中的数据点数量,sumi表示参数ci中的数据点的特征向量在d个维度上的线性和;
所述步骤S4)具体包括以下步骤:
S41)将所有联合区域Cs2分发到各计算节点进行并行挖掘聚类;
S42)各计算节点采用爬坡法搜索每个联合区域Cs2的每个数据点的密度吸引子;
其中爬坡法具体为:在多个数据点的影响函数叠加而形成的密度函数场中,从某点出发逐步逼近其附近的极大值点,当迭代路径上密度函数值由上升变为下降趋势时,即表示密度吸引子被找到;
S43)合并密度吸引子:对步骤S42中得到的每个联合区域Cs2的每个数据点的密度吸引子进行合并得到类簇,对得到的每个类簇,各计算节点为其赋予一个全局唯一的编号;
S44)由所述中心节点汇总各计算节点得到每个带全局唯一编号的类簇,直接合并后即得到最终聚类结果。
2.如权利要求1所述的方法,其特征在于,联合区域Cs2的每个数据点的密度吸引子的具体设置方式为:
获取当前待设置密度吸引子的数据点x的近邻点集合near(x);
判断是否满足迭代收敛条件,若否,则令迭代次数自增1后,继续迭代计算当前迭代点;否则,将最近两次迭代更新点中的任意一个点记为密度吸引子x*,设置迭代起始点x的密度吸引子为x*;
再将x*附近σ/2范围内关联邻居点的密度吸引子设置为x*。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810641090.0A CN108897820B (zh) | 2018-06-21 | 2018-06-21 | 一种denclue算法的并行化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810641090.0A CN108897820B (zh) | 2018-06-21 | 2018-06-21 | 一种denclue算法的并行化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108897820A CN108897820A (zh) | 2018-11-27 |
CN108897820B true CN108897820B (zh) | 2022-03-15 |
Family
ID=64345715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810641090.0A Active CN108897820B (zh) | 2018-06-21 | 2018-06-21 | 一种denclue算法的并行化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108897820B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110501006B (zh) * | 2019-08-29 | 2022-05-03 | 电子科技大学 | 一种异类传感器联合航迹关联与跟踪方法 |
CN112613562B (zh) * | 2020-12-24 | 2023-05-12 | 广州禧闻信息技术有限公司 | 基于多中心云计算的数据分析系统及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104318521A (zh) * | 2014-09-29 | 2015-01-28 | 北京理工大学 | 多线性子空间学习的医疗图像去噪方法 |
CN105261217A (zh) * | 2015-10-03 | 2016-01-20 | 上海大学 | 一种基于密度聚类算法的城市交通拥堵状态检测方法 |
CN106203494A (zh) * | 2016-06-30 | 2016-12-07 | 电子科技大学 | 一种基于内存计算的并行化聚类方法 |
CN106231617A (zh) * | 2016-07-18 | 2016-12-14 | 南京航空航天大学 | 基于模糊逻辑的无线传感器网络多传感器数据融合方法 |
CN107506480A (zh) * | 2017-09-13 | 2017-12-22 | 浙江工业大学 | 一种基于评论挖掘与密度聚类的双层图结构推荐方法 |
CN108173599A (zh) * | 2017-12-26 | 2018-06-15 | 中山大学 | 基于DENCLUE聚类的Stokes空间相干光调制格式识别方法 |
-
2018
- 2018-06-21 CN CN201810641090.0A patent/CN108897820B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104318521A (zh) * | 2014-09-29 | 2015-01-28 | 北京理工大学 | 多线性子空间学习的医疗图像去噪方法 |
CN105261217A (zh) * | 2015-10-03 | 2016-01-20 | 上海大学 | 一种基于密度聚类算法的城市交通拥堵状态检测方法 |
CN106203494A (zh) * | 2016-06-30 | 2016-12-07 | 电子科技大学 | 一种基于内存计算的并行化聚类方法 |
CN106231617A (zh) * | 2016-07-18 | 2016-12-14 | 南京航空航天大学 | 基于模糊逻辑的无线传感器网络多传感器数据融合方法 |
CN107506480A (zh) * | 2017-09-13 | 2017-12-22 | 浙江工业大学 | 一种基于评论挖掘与密度聚类的双层图结构推荐方法 |
CN108173599A (zh) * | 2017-12-26 | 2018-06-15 | 中山大学 | 基于DENCLUE聚类的Stokes空间相干光调制格式识别方法 |
Non-Patent Citations (2)
Title |
---|
Comparative analysis of density based outlier detection techniques on breast cancer data using hadoop and map reduce;Sourajit Behera et al.;《2016 International Conference on Inventive Computation Technologies》;20170119;1-4 * |
基于云平台的数据挖掘并行算法研究与应用;罗晓宇;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170215(第2期);I138-2228 * |
Also Published As
Publication number | Publication date |
---|---|
CN108897820A (zh) | 2018-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gonzalez-Lopez et al. | Distributed nearest neighbor classification for large-scale multi-label data on spark | |
CN106682116B (zh) | 基于Spark内存计算大数据平台的OPTICS点排序聚类方法 | |
Sharma et al. | KNN-DBSCAN: Using k-nearest neighbor information for parameter-free density based clustering | |
WO2022166380A1 (zh) | 一种基于meanshift优化的数据处理方法和装置 | |
CN115688913A (zh) | 一种云边端协同个性化联邦学习方法、系统、设备及介质 | |
CN110018997B (zh) | 一种基于hdfs的海量小文件存储优化方法 | |
Chang et al. | A general probabilistic framework for detecting community structure in networks | |
CN111985623A (zh) | 基于最大化互信息和图神经网络的属性图群组发现方法 | |
CN108897820B (zh) | 一种denclue算法的并行化方法 | |
Marghny et al. | An effective evolutionary clustering algorithm: Hepatitis C case study | |
CN106022359A (zh) | 基于有序信息熵的模糊熵空间聚类分析方法 | |
Babu et al. | A survey of nature-inspired algorithm for partitional data clustering | |
Chehreghani | Efficient computation of pairwise minimax distance measures | |
CN110781943A (zh) | 一种基于毗邻网格搜索的聚类方法 | |
CN108614932B (zh) | 基于边图的线性流重叠社区发现方法、系统及存储介质 | |
WO2016107297A1 (zh) | MapReduce 平台上基于本地密度的聚类方法 | |
CN111177190A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN112347842B (zh) | 一种基于关联图的离线人脸聚类方法 | |
Ganegedara et al. | Scalable data clustering: A Sammon’s projection based technique for merging GSOMs | |
Rashed et al. | Multi-objective clustering algorithm using particle swarm optimization with crowding distance (MCPSO-CD) | |
CN112765414A (zh) | 一种图嵌入向量的生成方法及基于图嵌入的社区发现方法 | |
Cagnini et al. | PASCAL: An EDA for parameterless shape-independent clustering | |
Mythili et al. | Research Analysis on Clustering Techniques in Wireless Sensor Networks | |
Sowjanya et al. | A cluster feature-based incremental clustering approach to mixed data | |
Li et al. | Path-Graph fusion based community detection over heterogeneous information network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |