一种基于密度的大型空间数据聚类算法K‑DBSCAN制造技术

技术编号:15437952 阅读:237 留言:0更新日期:2017-05-26 03:56
本发明专利技术具体涉及一种基于密度的大型空间数据聚类算法K‑DBSCAN,通过预设基于密度聚类参数:预设半径R、最小近邻数量Min_N、预划分数量K、划分迭代次数T;之后将数据集按照空间分布进行划分为K

A large spatial data clustering algorithm based on density of DBSCAN K

The invention relates to a large spatial data clustering algorithm based on density K DBSCAN, by default: the default parameters based on density clustering radius R, the smallest neighbor number Min_N, pre partition number K, the number of iterations divided T; then according to the spatial distribution of the data set is divided into K

【技术实现步骤摘要】
一种基于密度的大型空间数据聚类算法K-DBSCAN
本专利技术涉及数据挖掘和大数据分析领域,具体涉及一种基于密度的大型空间数据聚类算法K-DBSCAN。
技术介绍
空间数据聚类被广泛的使用于许多信息
,例如数据挖掘、模式识别、机器学习、人工智能、可视分析、地理信息系统等。尤其在大数据时代中,它可用来探索有意义但尚未知晓的潜在的模式及现象,可应用于许多学科领域,例如社会网络分析、经济网络分析、交通网络分析、气象分析、智慧城市发展等。传统的基于距离计算的空间数据聚类方法主要有三种:1)、基于划分的聚类;2)、基于密度的聚类;3)、层次聚类。基于密度的聚类可以有效的处理噪声点以及识别任意形状,主要算法包括:DBSCAN(Density-BasedSpatialClusteringofApplicationswithNoise)、OPTICS(Orderingpointstoidentifytheclusteringstructure)、DENCLUE(DENsitybastedCLUstEring)等。其中,DBSCAN是最著名的基于密度的空间聚类算法。其计算复杂度为O(N2),即当数据量增长100倍时,其计算时间将增加约10000倍。尽管已有许多基于计算并行化的方法来大幅降低计算所需时间,但仍受限于计算平台中CPU或GPU的数量。例如,要在相同的计算时间内进行100倍数据量的DBSCAN聚类,则需要约10000倍的CPU或GPU数量。因此在面临海量数据时,DBSCAN无法被广泛应用。
技术实现思路
本专利技术要解决的是现有技术中针对大量数据需要进行聚类时DBSCAN无法适用的技术问题。为了解决上述技术问题,本专利技术提供如下技术方案:一种基于密度的大型空间数据聚类算法K-DBSCAN,包括:将数据集划分为K1个数据子集,其中K1为大于1的自然数;获取每一数据子集的可达子集,并形成与该数据子集对应的可达子集索引;根据所述可达子集索引对各数据子集数据进行基于密度的空间聚类。可选地,上述的基于密度的大型空间数据聚类算法K-DBSCAN中,所述将数据集划分为K1个数据子集,其中为K1大于1的自然数,具体包括:获取所述数据集的实际空间范围值Dlen;根据所述数据集的实际空间范围值Dlen对所述数据集中的数据点进行预划分得到K个预分类,其中K为大于1的自然数;预分类步骤,获取每个预分类的中心点所在位置,并将所述数据集中的每一数据点分配至与之距离最近的中心点所在的预分类中,若某一预分类中的数据点数量小于预设最小近邻数量Min_N,则删除该预分类;重复所述预分类步骤T次,得到K1个数据子集,其中T为预设的划分迭代次数。可选地,上述的基于密度的大型空间数据聚类算法K-DBSCAN中,所述获取所述数据集的实际空间范围值Dlen,具体包括:获取所述数据集的最大空间范围值Dmax和最小空间范围值Dmin,其中Dmax=LNmax+LAmax,Dmin=LNmin+LAmin,LNmax为所述数据集中所有数据点的经度最大值,LAmin为所述数据集中所有数据点的经度最小值,LNmin为所述数据集中所有数据点的纬度最小值,LAmax为所述数据集中所有数据点的纬度最大值;获取所述数据集的实际空间范围值Dlen=Dmax-Dmin。可选地,上述的基于密度的大型空间数据聚类算法K-DBSCAN中,所述根据所述数据集的实际空间范围值Dlen对所述数据集中的数据点进行预划分得到K个预分类,其中K为大于1的自然数,具体包括:对于所述数据集中的任意一个数据点a,按照以下计算方法获得其所属的预分类:其中LNa为数据点a的经度值,LAa为数据点a的纬度值。可选地,上述的基于密度的大型空间数据聚类算法K-DBSCAN中,所述获取每一数据子集的可达子集,并形成与该数据子集对应的可达子集索引,具体包括:根据所述数据子集中所有数据点的经度值和纬度值,确定所述数据子集的最大经度值LOmax、最小经度值LQmin、最小纬度值LOmin、最大纬度值LQmax;获取每一所述数据子集的可达空间覆盖范围:LOright=LOmax+d,LOleft=LOmin–d,LQup=LQmax+d,LQdown=LQmin-d,其中d为预设可达距离,LQup、LOright、LQdown、LOleft分别为所述数据子集的可达空间覆盖范围的上边界、右边界、下边界和左边界;为每个所述数据子集计算其可达子集列表,计算方法为:对于任意的数据子集Pa和数据子集Pb,若数据子集Pa的可达空间覆盖范围与数据子集Pb的可达空间覆盖范围存在交集,则确定数据子集Pa和数据子集Pb互相可达,且每一数据子集都是自身的可达子集,记为RPLa={a,b…}和RPLb={a,b…};每一数据子集的所有可达子集构成该数据子集的可达子集列表,得到每个所述数据子集的可达子集列表后,将所有K1个数据子集的可达子集列表按照数据子集顺序进行排列,得到可达子集索引。可选地,上述的基于密度的大型空间数据聚类算法K-DBSCAN中,当数据子集Pa的可达空间覆盖范围与数据子集Pb的可达空间覆盖范围存在如下任意一种关系时,可确定数据子集Pa的可达空间覆盖范围与数据子集Pb的可达空间覆盖范围存在交集:关系一:(LOleft_a<LOleft_b<LOright_a)且(LQdown_a<LQup_b<LQup_a);关系二:(LOleft_a<LOleft_b<LOright_a)且(LAdown_a<LQdown_b<LQup_a);关系三:(LOleft_a<LOright_b<LOright_a)且(LQdown_a<LQup_b<LQup_a);关系四:(LOleft_a<LOright_b<LOright_a)且(LAdown_a<LAdown_b<LAup_a);关系五:(LOleft_a<LOleft_b<LOright_a)且(LQdown_a>LQdown_b&LQup_a<LQup_b);关系六:(LOleft_a<LOright_b<LOright_a)且(LQdown_a>LQdown_b&LQup_a<LQup_b);关系七:(LOleft_a>LOleft_b且LOright_a<LOright_b)且(LQdown_a<LQup_b<LQup_a);关系八:(LOleft_a>LOleft_b且LOright_a<LOright_b)且(LQdown_a<LQdown_b<LQup_a);关系九:(LOleft_a>LOleft_b)且(LOright_a<LOright_b)且(LQup_a<LQup_b)且(LQdown_a>LQdown_b);其中,LQup_a、LOright_a、LQdown_a、LOleft_a分别为数据子集Pa的可达空间覆盖范围的上边界、右边界、下边界和左边界;LQup_b、LOright_b、LQdown_b、LOleft_b分别为数据子集本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/201611047429.html" title="一种基于密度的大型空间数据聚类算法K‑DBSCAN原文来自X技术">基于密度的大型空间数据聚类算法K‑DBSCAN</a>

【技术保护点】
一种基于密度的大型空间数据聚类算法K‑DBSCAN,其特征在于,包括:将数据集划分为K

【技术特征摘要】
1.一种基于密度的大型空间数据聚类算法K-DBSCAN,其特征在于,包括:将数据集划分为K1个数据子集,其中K1为大于1的自然数;获取每一数据子集的可达子集,并形成与该数据子集对应的可达子集索引;根据所述可达子集索引对各数据子集数据进行基于密度的空间聚类。2.根据权利要求1所述的基于密度的大型空间数据聚类算法K-DBSCAN,其特征在于,所述将数据集划分为K1个数据子集,其中为K1大于1的自然数,具体包括:获取所述数据集的实际空间范围值Dlen;根据所述数据集的实际空间范围值Dlen对所述数据集中的数据点进行预划分得到K个预分类,其中K为大于1的自然数;预分类步骤,获取每个预分类的中心点所在位置,并将所述数据集中的每一数据点分配至与之距离最近的中心点所在的预分类中,若某一预分类中的数据点数量小于预设最小近邻数量Min_N,则删除该预分类;重复所述预分类步骤T次,得到K1个数据子集,其中T为预设的划分迭代次数。3.根据权利要求2所述的基于密度的大型空间数据聚类算法K-DBSCAN,其特征在于,所述获取所述数据集的实际空间范围值Dlen,具体包括:获取所述数据集的最大空间范围值Dmax和最小空间范围值Dmin,其中Dmax=LNmax+LAmax,Dmin=LNmin+LAmin,LNmax为所述数据集中所有数据点的经度最大值,LAmin为所述数据集中所有数据点的经度最小值,LNmin为所述数据集中所有数据点的纬度最小值,LAmax为所述数据集中所有数据点的纬度最大值;获取所述数据集的实际空间范围值Dlen=Dmax-Dmin。4.根据权利要求3所述的基于密度的大型空间数据聚类算法K-DBSCAN,其特征在于,所述根据所述数据集的实际空间范围值Dlen对所述数据集中的数据点进行预划分得到K个预分类,其中K为大于1的自然数,具体包括:对于所述数据集中的任意一个数据点a,按照以下计算方法获得其所属的预分类:其中LNa为数据点a的经度值,LAa为数据点a的纬度值。5.根据权利要求1所述的基于密度的大型空间数据聚类算法K-DBSCAN,其特征在于,所述获取每一数据子集的可达子集,并形成与该数据子集对应的可达子集索引,具体包括:根据所述数据子集中所有数据点的经度值和纬度值,确定所述数据子集的最大经度值LOmax、最小经度值LQmin、最小纬度值LOmin、最大纬度值LQmax;获取每一所述数据子集的可达空间覆盖范围:LOright=LOmax+d,LOleft=LOmin–d,LQup=LQmax+d,LQdown=LQmin-d,其中d为预设可达距离,LQup、LOright、LQdown、LOleft分别为所述数据子集的可达空间覆盖范围的上边界、右边界、下边界和左边界;为每个所述数据子集计算其可达子集列表,计算方法为:对于任意的数据子集Pa和数据子集Pb,若数据子集Pa的可达空间覆盖范围与数据子集Pb的可达空间覆盖范围存在交集,则确定数据子集Pa和数据子集Pb互相可达,且每一数据子集都是自身的可达子集,记为RPLa={a,b…}和RPLb={a,b…};每一数据子集的所有可达子集构成该数据子集的可达子集列表,得到每个所述数据子集的可达子集列表后,将所有K1个数据子集的可达子集列表按照数据子集顺序进行排列,得到可达子集索引。6.根据权利要求5所述的基于密度的大型空间数据聚类算法K-DBSCAN,其特征在于,当数据子集Pa的可达空间覆盖范围与数据子集Pb的可达空间覆盖范围存在如下任意一种关系时,可确定数据子集Pa的可达空间覆盖范围与数据子集Pb的可达空间覆盖范围存在交集:关系一:(LOleft_a<LOleft_b<LOright_a)且(LQdown_a<LQup_b<LQup_a);关系二:(LOleft_a<LOleft_b<LOright_a)且(LAdown_a<LQdown_b<LQup_a);关系三:(LOleft_a<LOright_b<LOright_a)且(LQdown_a<LQup_b<LQup_a);关系四:(LOleft_a<LOright_b<LOright_a)且(LAdown_a<LAdown_b<LAup_a);关系五:(LOleft_a<LOleft_b<LOright_a)且(LQdown_a>LQdown_b&LQup_a<LQup_b);关系六:(LOleft_a<LOright_b<LOright_a)且(LQdown_a>LQdown_b&LQup_a<LQup_b);关系七:(LOleft_a>LOleft_b且LOright_a<LOright_b)且(LQdown_a<LQup_b<LQup_a);关系八:(LOleft_a>LOleft_b且LOright_a<LOright_b)且(LQdown_a<LQdown_b<LQup_a);关系九:(LOleft_a>LOleft_b)且(LOright_a<LOright_b)且(LQup_a<LQup_b)且(LQdown_a>LQdown_b);其中,LQup_a、LOright_a、LQdown_a、LOleft_a分别为数据子集Pa的可达空间覆盖范围的上边界、右边界、下边界和左边界;LQup_b、LOright_b、LQdown_b、LOleft_b分别为数据子集Pb的可达空间覆盖范围的上边界、右边界、下边界和左边界。7.根据权利要求6所述的基于密度的大型空间数据聚类算法K-DBSCAN,其特征在于,所述根据所述可达子集索引对各数据子集数据进行基于密度的空间聚类,具体包括:根据所述可达子集索引计算每一数据子集的核心点;分别对每个数据子集中的核心点进行聚类。8.根据权利要求7所述的基于密度的大型空间数据聚类算法K-DBSCAN,其特征在于,所述根据所述可达子集索引计算每一数据子集的核心点,具体包括:步骤11:按顺序从K1个数据子集中选取数据子集a,从数据子集a中按顺序选取数据点Pi,设数据点Pi的近邻点数量Ni的初始值为0,分类标签CF为1;步骤12:从数据子集a的可达子集列表中按顺序选取数据子集b;步骤13:从数据子集b中按顺序选取数据点Pj;步骤14:计算数据点Pi与数据点Pj之间的距离Di,j,若距离Di,j小于预设半径R,则确定数据点Pj是数据点Pi的近邻点,数据点Pi的近邻点数量Ni=Ni+1;步骤15:按照步骤13和14所述的方法,遍历数据子集b中的所有数据点,按照步骤14的方法计算得到数据点Pi的近邻点数量Ni;步骤16:按照步骤12所述的方法,遍历数据子集a的可达子集列表中的所有可达数据子集,按照步骤15所述方法计算得到数据点Pi的近邻点数量Ni;步骤17:每次计算得到数据点Pi的近邻点数量Ni后,均判断数据点Pi的近邻点数量Ni是否大于最小近邻数量Min_N,若是则数据点Pi为核心点,为数据点Pi加上分类标签CFi=CF,并为该步计算中最后一个近邻点Pk加上分类标签MFa,且针对数据点Pi的核心点计算结束,令CF=CF+1,并按照步骤11中的方法,选取下一个数据点Pi+1进行核心点计算;步骤18:按照步骤11至步骤17所述的方法,按顺序遍历数据子集a中的每一个数据点,完成数据子集a中所有数据点的核心点计算;步骤19:按照步骤11至步骤18所述的方法,按顺序遍历K1个数据子集中的每一个数据子集,完成所有数据子集中所有数据点的核心点计算。9.根据权利要求8所述的基于密度的大型空间数据聚类算法K-DBSCAN,其特征在于,所述计算每一数据子集的核心点,具体包括:步骤21:按顺序从K1个数据子集中选取数据子集a,从数据子集a中按顺序选取数据点Pi,设数据点Pi的近邻点数量Ni的初始值为0,分类标签CF为...

【专利技术属性】
技术研发人员:邓超陈智斌郭晓惠农英雄韦屹黄聪汪倍贝钱方远李喆
申请(专利权)人:广西中烟工业有限责任公司
类型:发明
国别省市:广西,45

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1