前言:
目前各位老铁们对“基于密度的聚类算法matlab”大概比较关注,咱们都想要了解一些“基于密度的聚类算法matlab”的相关内容。那么小编在网摘上搜集了一些有关“基于密度的聚类算法matlab””的相关资讯,希望朋友们能喜欢,兄弟们快快来学习一下吧!《测绘学报》
构建与学术的桥梁 拉近与权威的距离
ST-CFSFDP:快速搜索密度峰值的时空聚类算法
王培晓1,3, 张恒才2,3, 王海波4, 吴升1,3
1. 福州大学数字中国研究院(福建), 福建 福州 350002;
2. 中国科学院地理科学与资源研究所资源与环境信息系统国家重点实验室, 北京 100101;
3. 海西政务大数据应用协同创新中心, 福建 福州 350002;
4. 湖北工业大学经济与管理学院, 湖北 武汉 430068
收稿日期:2018-11-23;修回日期:2019-04-08
基金项目:国家重点研发计划(2017YFB0503500);数字福建建设项目(闽发改网数字函[2016]23号);国家自然科学基金(41771436)
第一作者简介:王培晓(1994—), 男, 硕士生, 研究方向为地理信息服务、时空数据挖掘。E-mail:peixiao_wang@163.com
通信作者:吴升, E-mail: ws0110@163.com
摘要:时空聚类算法是地理时空大数据挖掘的基础研究命题。针对传统CFSFDP聚类算法无法应用于时空数据挖掘的问题,本文提出一种时空约束的ST-CFSFDP(spatial-temporal clustering by fast search and find of density peaks)算法。在CFSFDP算法基础上加入时间约束,修改了样本属性值的计算策略,不仅解决了原算法单簇集多密度峰值问题,且可以区分并识别相同位置不同时间的簇集。本文利用模拟时空数据与真实的室内定位轨迹数据进行对比试验。结果表明,该算法在时间阈值90 s、距离阈值5 m的识别正确率高达82.4%,较经典ST-DBCSAN、ST-OPTICS及ST-AGNES聚类算法准确率分别提高了5.2%、4.2%和7.6%。
关键词:地理时空大数据挖掘 CFSFDP算法 ST-CFSFDP算法 时空聚类算法
Spatial-temporal clustering by fast search and find of density peaks
WANG Peixiao1,3, ZHANG Hengcai2,3, WANG Haibo4, WU Sheng1,3
1. The Academy of Digital China, Fuzhou University, Fuzhou 350002, China;
2. State Key Lab of Resources and Environmental Information System, IGSNRR, CAS, Beijing 100101, China;
3. Fujian Collaborative Innovation Center for Big Data Applications in Governments, Fuzhou 350002, China;
4. Economic and management school, Hubei University of Technology, Wuhan 430068, China
Foundation support: The National Key Research and Development Program of China(No. 2017YFB0503500); The Digital Fujian Program(No. 2016-23); The National Natural Science Foundation of China(No. 41771436)
First author: WANG Peixiao(1994—), male, postgraduate, majors in geographic information services and spatio-temporal data mining. E-mail:peixiao_wang@163.com.
Corresponding author: WU Sheng, E-mail: ws0110@163.com.
Abstract: Spatial-temporal clustering algorithm is the basic research topic of geographic spatial-temporal big data mining. In view of the problem that traditional CFSFDP clustering algorithm cannot be applied in spatio-temporal data mining, this paper proposes a spatio-temporal constraint algorithm called ST-CFSFDP(spatial-temporal clustering by fast search and find of density peaks). ST-CFSFDP adds time constraint on the basis of CFSFDP algorithm, and modifies the calculation strategy of sample attribute value, which not only solves the problem of multi-density peak of single cluster set in the original algorithm, but also can distinguish and identify clusters at the same location and at different times. In this paper, the simulated spatiotemporal data and real indoor location trajectory data were used for the experiment, the results show that the ST-CFSFDP algorithm has a recognition rate of 82.4% at a time threshold of 90 s and a distance threshold of 5 m, which is better than the classic ST-DBCSAN, ST-OPTICS and ST-AGNES algorithm increased by 5.2%, 4.2%, and 7.6%, respectively.
Key words: geospatial-temporal big data mining CFSFDP algorithm ST-CFSFDP algorithm spatio-temporal clustering
近年来,室内外定位技术迅猛发展,如北斗、GPS、WiFi、蓝牙、UWB(ultra-wideband)等,海量移动终端不断普及,如PDA、智能手机、平板电脑等,网络技术不断进步,室内外位置服务应用不断增多,如在线导航、基于位置的社交网络、基于位置的广告推送、商业物流调度与管理等,时空轨迹数据爆发式增长[1-2],为人类出行模式及人类移动性、城市计算、社会计算、交通管理、城市规划、人口流动监测、公共安全保障等研究提供了重要支撑[3-4]。
聚类算法是发现时空模式、探寻移动规律的关键技术之一,旨在将实体划分为一系列具有一定分布模式的簇集,同一簇集中的实体具有较大的相似度,不同簇集中的实体具有较大差别[5-8],已广泛应用于犯罪热点分析[9]、地震空间分布模式挖掘[10]、制图自动综合[11]、遥感影像处理[12]、公共设施选址[13]、地价评估[14]、用户停留区域识别[15]等研究。
目前,聚类算法大致分为[6, 16]:基于划分、基于层次、基于密度、基于格网的聚类算法。基于划分聚类算法使用聚类中心(位于簇集中心附近的一个对象)来表示每个簇集,如经典的k-means[17]算法和K-Medoid[18]算法,具有计算逻辑简单、运算效率高等优点;基于层次聚类算法使用逐步合并或分裂的策略来实现聚类,如改进的CURE[19]算法,不仅能发现球形的空间簇集[20-21],也能够发现较为复杂结构的空间簇集,但过多的超参数增加了算法的不确定性;基于密度聚类算法,如DBSCAN[22]将簇定义为密度相连的点的最大集合,但由于采用固定阈值聚类,难以适应空间实体密度的变化[23],OPTICS[22, 24]算法为聚类分析生成一个增广簇排序,解决了DBSCAN算法全局密度阈值的缺点;基于格网的聚类算法[25]其聚类效果依赖于网格的大小,如果网格划分过细,则时间复杂度会显著增加,如果网格划分过粗,则聚类质量难以得到保证。
此外,许多研究学者在经典聚类算法基础之上,提出了时空聚类算法,文献[26—27]在基于密度聚类的基础上提出了时空密度聚类ST-DBSCAN和ST-OPTICS算法,在时空密度聚类中,使用时间距离将空间邻域扩展到时空邻域,从而寻找时空邻域下密度相连的区域。文献[10, 28]采用时空距离(时间距离与空间距离的函数)度量任意两个时空事件的差异,后将时空距离应用到传统的聚类算法中挖掘时空事件的模式;文献[29—30]在空间扫描统计的基础上提出了时空扫描统计算法,通过滑动扫描窗口(空间半径和时间间隔定义的圆柱体)揭示时空事件随时间聚类模式;文献[31]通过窗口距离与时空最近邻的概念重新定义了时空密度,从而提出了STSNN算法;文献[32]从统计学的视角提出了WNN算法,将时空邻域中的实体分为特征与噪声两个时空泊松点过程,使用密度相连(density-connective)的概念将特征分为多个簇集;文献[33—34]分别在基于划分和基于层次聚类基础上提出了WKM和ST-AGNES算法,将其分别应用于人类行为和用户停留区域识别中,并取得了较好的聚类效果。
经典的CFSFDP[35](clustering by fast search and find of density peaks)算法结合了基于划分和基于密度聚类算法的优点,不仅可以发现多密度任意形状的簇集,还可以通过决策图辅助识别聚类中心的个数。但该算法无法很好地应用于时空数据聚类研究之中,究其原因在于CFSFDP算法未考虑时间约束,如图 1所示,并没有正确识别簇集。如错误地将簇集A(t5,t6,t7,t8)、C(t15,t16,t17,t18)合并为一个簇集,且并不能发现簇集之间的顺序关系。此外,在单簇集中存在多个密度峰值点时,该算法将会产生错误的时空聚类结果。
图 1 是否考虑时间约束的两种聚类结果Fig. 1 Comparison of clustering results with and without time constraints
图选项
鉴于此,本文提出一种快速搜索密度峰值的时空聚类算法(spatial-temporal clustering by fast search and find of density peaks,ST-CFSFDP),在CFSFDP算法的基础上引入了时间约束,修改了样本属性值的计算策略。采用模拟数据和真实数据案例进行算法有效性的验证。模拟数据试验结果表明,与CFSFDP算法相比,ST-CFSFDP算法不仅可以克服单簇集中可能存在多密度峰值的不足,且可以区分并识别相同位置不同时间的簇集。以移动对象轨迹中停留点识别为例,ST-CFSFDP算法较经典的ST-DBCSAN、ST-OPTICS和ST-AGNES算法识别正确率分别可提高5.2%、4.2%和7.6%。
1 ST-CFSFDP算法1.1 CFSFDP算法
CFSFDP算法的核心思想在于聚类中心的计算。聚类中心同时具有两个特点:①局部密度最大,被不超过自身密度的邻居包围;②与局部密度更大的样本点之间的距离相对较大。为识别数据集中X={xi}i=1N的聚类中心,针对每一个样本点xi定义了局部密度ρi和距离δi两个量。其计算方法如式(1)和式(2)所示
(1)
(2)
式中,dij为样本点i和样本点j之间的空间距离;dc是人为指定的超参数,称为截断距离;χ(x)表示0~1函数,当x< 0时,χ(x)=1, 当x≥0时,χ(x)=0,即局部密度ρi表示落在以样本点xi为圆心,截断距离dc为半径的圆形区域中样本点个数;δi表示局部密度大于xi的所有样本点中,距离xi最近的样本点与xi之间的距离, 由于式(2)无法计算密度最大的样本点,因此密度最大的样本点δi=max(dij)。
CFSFDP算法通过各样本点的局部密度ρi和距离δi确定聚类中心(ρi和δi均相对较大的样本点)。如图 2(a)所示,对于数据集X中每一个样本点xi,计算其局部密度ρi和距离δi,生成相应的三元组(ρi, δi, λi),λi表示δi对应的节点编号,用于非聚类中心样本点的类别分配,使用ρi和δi构造数据集X的决策图(decision graph),如图 2(b)所示。容易发现,标号为①和⑩的样本点同时具有较大的ρ值和δ值,因此被确定为数据集X的两个聚类中心。为了更加方便地确定数据集X中的聚类中心,文献[35]提出了一个综合考虑ρ和δ的量γ。
图 2 数据集X及其决策图Fig. 2 DatasetXand its decision graph
图选项
(3)
式中,ρi表示样本点xi的局部密度;δi表示样本点xi的距离。显然γ值越大,越有可能是聚类中心,因此将{γi}i=1N进行降序排列,如图 3所示。可见非聚类中心的γ值比较平滑,并且非聚类中心过渡到聚类中心存在一个明显的跳跃,此跳跃可以辅助识别聚类中心的个数。聚类中心找到后,剩余样本点根据局部密度降序依次归属到距离其最近邻的且拥有高密度值样本点所在的簇集中,比如非聚类中心样本点中密度最大的是③号样本点,因此③号首先被分配类别,首先获取③号样本点的三元组(ρi, δi, λi),将xλi的类别分配给③号。
图 3 递减顺序排列的γFig. 3 The value ofγin decreasing order
图选项
非聚类中心点经分配后都将具有类别,为识别数据集X中的离群点,CFSFDP算法为每一个簇集Ck引入了平均密度上界ρkb的概念。ρkb的定义如式(4)所示
(4)
式中,Ck表示聚类结果后的第k个簇集;xi表示数据集X中的第i个样本点,xi与xj有且仅有一个样本点属于簇集Ck;ρi表示样本点xi的局部密度;dc表示截断距离;dij表示样本点xi与样本点xj的空间距离。依据平均密度上界ρkb将Ck内部的样本点分为核心部分(cluster core)和边缘部分(cluster halo),Ck内部样本点的局部密度大于ρkb称为核心部分,小于ρkb称为边缘部分,边缘部分即为数据集X中的离群点。
1.2 基于时空约束的ST-CFSFDP聚类算法
ST-CFSFDP算法首先在CFSFDP算法的基础上引入了第2个超参数tc,针对时间序列数据集X,修改了ρ与δ的计算策略。其中时间约束下的局部密度ρ计算方法如式(5)所示
(5)
式中,dij为样本点i与样本点j之间的空间距离;tij为样本点i与样本点j之间的时间距离;dc和tc是人为指定的超参数;dc为空间截断距离;tc为时间截断距离;χ(x,y)表示0~1函数,当x和y同时小于0时,χ(x,y)=1, 否则,χ(x,y)=0,即时间约束下的局部密度ρi表示同时小于空间邻域dc和时间邻域tc的样本点个数。其次,采用样本点的时间距离计算δ,如图 4(a)所示,簇集A(t3,t4,t5,t6)、B(tn-4,tn-3,tn-2,tn-1)虽然在空间距离上相距很近,但是两个簇集的时间距离却很远,因此采用时间距离即可将两个簇集区分,从而产生两个聚类中心。针对单簇集可能存在多密度峰值的不足,本文将样本点的局部密度{ρi}i=1N降序排列,获取其降序排列的下标序列{qi}i=1N,即ρq1≥ρq2≥…≥ρqN,使用下标序列{qi}i=1N重新对δ作了定义,其中δ的计算方法如式(6)所示
图 4 CFSFDP算法改进Fig. 4 Improvement of CFSFDP algorithm
图选项
(6)
式中,tqiqj表示样本点xqi与样本点xqj的时间距离,即修改后的δ根据样本点的局部密度降序依次计算,即使单簇集中存在多个密度峰值,依旧仅有一个样本点被选做聚类中心。然而当单簇集的时间跨度过长时,仅使用时间距离计算δ同样会将单簇集分裂成多个小簇集。如图 4(b)所示,假设簇集C内部的样本点4、k具有较高的局部密度ρ,由于两样本点的时间跨度较大,两点都将具有较大的δ,依据本文的计算策略γi=ρiδi,簇集C将产生两个聚类中心。为解决这个问题,本文添加了聚类中心合并的过程,将识别的聚类中心按时间顺序链接,分别计算相邻两聚类中心的距离,若小于距离邻域dc,将相邻两个聚类中心合并,经聚类中心合并后,聚类中心的个数将与簇集的个数一一对应。
在ST-CFSFDP算法中,剩余样本点的分配沿时间轴进行。如图 5所示,针对时间顺序分布的数据集X,首先识别数据集中的聚类中心(红色样本点为合并后的聚类中心),然后每个聚类中心沿时间轴向前、后搜索本簇集中的剩余样本点,以聚类中心CP2向前搜索为例,寻找CP2前一时刻的样本点t15,计算样本点与CP1和CP2的距离,如果距离CP2近,则将样本点t15归属于CP2,否则聚类中心CP2向前搜索完毕,以同样的策略向后搜索最终确定该簇集包含的所有样本。所有聚类中心依次搜索完毕后,未被分配类别的样本点为离群点,以图 5黄色样本点为例,聚类中心CP2延时间轴向后搜索时,由于黄色样本点OP1距离聚类中心CP3较近,因此聚类中心CP2向后搜索结束,当聚类中心CP3延时间轴向前搜索时,黄色样本点OP2距离聚类中心CP2较近,因此聚类中心CP3向前搜索结束,此时黄色样本点OP1与OP2之间的样本点为离群点。ST-CFSFDP算法整体实现流程如下。
图 5 ST-CFSFDP算法剩余点分配Fig. 5 Distribution of non-clustered center points of ST-CFSFDP algorithm
图选项
算法 快速搜索密度峰值的时空聚类算法
输入:序列数据sequence=={ti, pi}, 距离阈值disthr, 时间阈值tthr
输出:每一个样本点的聚类类别labels={ci}
functionST_CFSFDP (sequence, disthr,tthr)
//计算样本点的空间距离矩阵
stDisMat=computeSpatialDisMat(sequence)
//计算样本点的时间距离矩阵
timeDisMat=computeTimeDisMat(sequence)
//计算样本点在时空约束下的局部密度
densityArr=computeDensity(stDisMat, disthr, timeDisMat,tthr)
//获得局部密度降序排列的下标序列
densitySortArr=argsort(densityArr)
//初始化数组,用于存放每个轨迹点的属性δ
closestDis=
fori=0→len(densitySortArr)do
//获得当前样本点的索引
node=densitySortArr[i]
//获得比当前样本点局部密度更大的索引集合
nodeIdArr=densitySortArr[i+1;]
//计算每一个样本点的属性δ
closestDis[node]=compute(node, nodeIdArr, stDisMat, timeDisMat)
end for
//计算每一个样本点的属性γ
gamma=closestDis*densityArr
//通过决策图得到聚类的数目
classNum=getNumFromDecisionGraph(gamma)
//获取样本点的聚类类别
labels=extract_clustering(gamma, classNum, stDisMat, timeDisMat)
returnlabels
end function
1.3 算法时间复杂度分析
ST-CFSFDP算法的时间复杂度定性描述了该算法的运行时间。ST-CFSFDP算法的时间复杂度主要由两部分组成:计算样本点的局部密度ρ和距离δ,其中ρ和δ的计算都涉及样本点之间的距离计算。在数据集规模为n的情况下,①计算任意两个样本点之间的距离,时间复杂度为O(n2);②计算n个样本点的局部密度δ,时间复杂度为O(n2);③计算n个样本点的距离δ,时间复杂度同样为O(n2)。因此,ST-CFSFDP算法的时间复杂度为O(n2)。
2 试验结果与讨论2.1 试验数据
为分析ST-CFSFDP算法的性能,分别采用模拟数据集和真实用户轨迹进行试验。采用模拟数据集进行试验的主要目的是以二维图形的方式直观地展示聚类结果,采用真实用户轨迹进行试验的主要目的是使用相关指标定量地评价聚类算法的性能。
本文共模拟4组数据量不同的时序数据集X。每组模拟数据集的生成过程如下:首先生成指定的具有时间约束的几何形状,然后根据指定的几何形状等时间间隔采样而成,其中一组数据如图 6(a)、(b)所示。
图 6 模拟数据集Fig. 6 Simulated data sets
图选项
真实数据来源于济南市某广场移动用户的WiFi定位数据。用户移动定位数据是一种典型的时空数据,在一定程度反映了用户的个人生活习惯和日常行为模式。时空聚类算法常用于从用户移动定位数据识别用户的停留区域,从而进一步挖掘用户的兴趣爱好,因此本文将ST-CFSFDP算法应用于停留区域识别并定量的评价该算法的性能。移动用户定位数据覆盖广场5个楼层,平均采样为1~10 s不等,定位精度约为3 m。由于定位数据难以获取用户停留区域的标注数据,因此本文采用爬虫技术从百度地图上获取了该广场的商铺数据,借助商铺数据标注用户轨迹中的停留信息。标注过程如下:首先对商铺数据与蓝牙定位数据求交,然后统计某用户在商铺内部的持续停留时间,若用户在商铺内部的持续停留时间超过一定阈值,则将相应的轨迹点标注为停留点。依据上述规则,本文共标注472条用户轨迹(当用户轨迹中停留区域过少时,本文认为该轨迹价值不高,删除该轨迹),轨迹点总记录量为935 639个。经标注后的某用户轨迹数据如表 1所示,每条记录包括用户唯一标识ID、记录时间、用户位置(X、Y坐标及所在楼层ID)、停留的商铺ID(-1代表用户未停留)。
表 1 单用户轨迹数据实例Tab. 1 Samples of user's records
用户ID时间XY所在楼层ID停留的商铺ID0000CE***20171220104645130219***43904***1-10000CE***20171220104657130219***43903***110000CE***20171220104705130219***43904***11………………0000CE***20171220192033130219***43904***4-10000CE***20171220192045130219***43904***4-1
表选项
2.2 算法评价指标及对比试验选择
本文以准确率(accuracy)和召回率(recall)作为停留区域识别的定量评价指标。用户停留区域可理解为时间约束下用户轨迹中的簇集,进一步可抽象为[36]S=(userID, Lng, Lat, arrT, levT),(Lng, Lat)表示停留区域内的某个点坐标,其应最大概率出现在停留区域内部,一般为区域内所有轨迹点的均值坐标,本文为聚类中心坐标;arrT表示用户抵达停留区域的时间;levT表示用户离开停留区域的时间。停留区域识别结果是否正确主要依赖3个方面:①识别的停留区域和标注的停留区域数量是否一致;②识别的停留区域(Lng, Lat)坐标是否处于标注商铺内部;③识别的停留区域起止时间(arrT, levT)是否与标注数据一致。结合上述3个方面,本文accuracy和recall计算方法如式(7)、式(8)所示。
(7)
(8)
式中,SClabel表示标注的停留区域个数;SCalgorithm表示算法识别的停留区域个数;SCcorrect表示算法判断正确的停留区域个数,本文采用SO和TO[15]两个函数共同判断某个停留区域是否识别正确(SO函数判断识别结果和标注数据在空间上是否邻近,TO函数判断识别结果和标注数据在时间上是否重合)。本文将ST-DBSCAN、ST-OPTICS、ST-AGNES、ST-CFSFDP时空聚类算法进行对比,探讨4种时空聚类算法在不同阈值下准确率和召回率的变化情况。
2.3 模拟数据集上的测试结果分析
CFSFDP与ST-CFSFDP算法在模拟数据集上的聚类结果如图 7(e)、7(f)所示:①对于区域A,由于存在两个聚类中心,使用CFSFDP算法,分裂成两个小簇集,产生了错误的聚类结果,而使用ST-CFSFDP算法,依据改进的属性计算策略,只聚类成一个簇集,从而得到更合理的聚类结果;②对于区域B,由于CFSFDP算法未考虑数据的时间约束,因此只聚类出一个簇集,而ST-CFSFDP算法考虑数据的时间约束,所以可以聚类出相同位置但不同时间的两个簇集;③对于区域C,使用ST-CFSFDP算法识别出两个聚类中心,但仅产生一个簇集,原因是其中一个小簇集时间跨度过长,在该簇集中识别出两个聚类中心,但ST-CFSFDP算法最终会将这两个聚类中心合并(相邻聚类中心的距离小于距离阈值dc),因此最终只产生一个簇集。综上所述,与CFSFDP算法相比,ST-CFSFDP算法不仅克服了单簇集中可能存在多密度峰值的不足,且实现了考虑时间约束的时空聚类。ST-CFSFDP算法与ST-DBSCAN、ST-OPTICS、ST-AGNES算法的聚类结果如图 8所示,进一步说明ST-CFSFDP算法具有发现时空簇集的能力。
图 7 ST-CFSFDP算法与CFSFDP算法的对比结果Fig. 7 Comparison between ST-CFSFDP algorithm and CFSFDP algorithm
图选项
图 8 时空聚类算法聚类结果在模拟数据集对比分析Fig. 8 Spatio-temporal clustering results on simulated data sets
图选项
由上文分析可知,ST-CFSFDP算法具有良好的聚类性能,不仅解决了单簇集存在多密度峰值的问题,还能正确发现时空数据集的簇分布特征。进一步分析算法的运行时间,表 2为两种聚类算法在4组模拟数据集上运行时间的对比。试验结果可以看出,ST-CFSFDP算法的时间开销要略大于CFSFDP算法,这主要是因为ST-CFSFDP算法在计算样本点局部密度时增加了时间开销。但是这两种算法的时间复杂度的均为O(n2)。与ST-DBSCAN、ST-OPTICS、ST-AGNES算法的运行时间相比,ST-CFSFDP的运行时间较小,能够较快地得到聚类的运行结果。
表 2 时空聚类算法运行时间在模拟数据集对比分析Tab. 2 The running time of spatio-temporal clustering on simulated data set
数据集X记录数CFSFDPST-CFSFDPST-DBSCANST-OPTICSST-AGNES3140.004 50.004 80.005 20.031 20.003 334540.215 90.298 20.805 81.972 30.232 463630.683 90.842 03.122 110.6710.791 815 6234.009 45.879 115.627 626.5154.891 7
表选项
2.4 真实数据集上的测试结果分析
为评价ST-CFSFDP算法性能,本文参考室内房间宽度将初始距离阈值设置为1 m,并以0.5 m步长递增;初始时间阈值设置为50 s,以20 s步长递增;以启发式的方法[22]设置ST-DBSCAN、ST-OPTICS算法中minPts参数,minPts=ln(N),N为某用户轨迹点数量。算法识别结果的准确率对比如图 9所示。4种算法的识别准确率变化趋势在整体上较为相似,在时间阈值固定的情况下,准确率均随着距离阈值的增加呈现先增加后下降的趋势。综合4种算法在不同阈值下的表现可以发现:①ST-CFSFDP算法对参数敏感度低,ST-DBSCAN与ST-OPTICS算法对参数敏感度较高(准确率随着超参数的改变波动较大);②相较ST-DBSCAN、ST-OPTICS、ST-AGNES算法,ST-CFSFDP算法准确率较高,在时间阈值90 s时最为明显,ST-CFSFDP算法准确率最高可达82.4%,与现有算法相比,最高可提升7.6%;③ST-DBSCAN、ST-OPTICS算法本质上是一种算法,所以两种算法的准确率高度一致;④ST-AGNES算法隐含时间约束,仅需要距离阈值即可完成聚类,因此算法准确率不受时间阈值的影响。
图 9 不同算法识别结果的准确率对比Fig. 9 Comparison of recognition accuracy of different algorithms
图选项
算法识别结果的召回率对比如图 10所示。4种算法的召回率均随距离阈值增加呈现先增加后下降的趋势,与算法准确率一致。当时间阈值为90 s时,4种算法的召回率较高,原因在于人工标注时用户的停留时间阈值与90 s较接近。在此阈值下4种算法将会得到较精确的识别结果。与此同时ST-CFSFDP算法的召回率略高于其余3种算法且准确率与召回率波动最小,原因为ST-CFSFDP算法采用聚类中心作为用户最可能的停留位置,而聚类中心作为局部范围内密度最大的点,受阈值影响较小。本文将4种算法最高准确率相应的运行时间进行对比,结果如表 3所示。ST-CFSFDP算法与ST-AGNES算法相比,ST-CFSFDP算法的运行时略高,但算法的识别正确率却可提升7.6%;与ST-DBSCAN算法相比,ST-CFSFDP算法的运行时间略有降低且识别准确率提升了5.2%;与ST-OPTICS算法相比,ST-CFSFDP算法的运行时间得到了大幅度提升且识别准确率也有一定程度的提高。
图 10 不同算法识别结果的召回率对比Fig. 10 Comparison of recognition recall of different algorithms
图选项
表 3 4种算法运行时间对比分析Tab. 3 The running time of four algorithms
算法名称最高准确率/(%)运行时间/sST-CFSFDP82.484.658ST-DBSCAN77.2129.464ST-OPTICS78.2285.152ST-AGNES74.865.326
表选项
3 结论与展望
CFSFDP算法是一种新颖的空间聚类算法,通过计算样本点的属性值γ,能够快速发现数据集中的密度峰值点。然而当数据集的某簇集存在多密度峰值点时,该算法易产生错误的聚类结果,且CFSFDP算法无法实现考虑时间约束的时空聚类。针对以上两点不足,本文提出了时空聚类算法ST-CFSFDP。ST-CFSFDP算法在CFSFDP算法基础上加入时间约束,并修改了样本属性值的计算策略。为验证算法的有效性,首先采用模拟数据进行定性试验。结果表明,与原有的CFSFDP算法相比,ST-CFSFDP算法不仅可以克服单簇集中可能存在多密度峰值的不足,且可以区分并识别相同位置不同时间的簇集。最后本文将ST-CFSFDP算法应用于用户的停留区域识别,结果表明,ST-CFSFDP算法在时间阈值90 s、距离阈值5 m的识别正确率高达82.4%,较经典的ST-DBCSAN、ST-OPTICS和ST-AGNES算法分别提高了5.2%、4.2%和7.6%。
本文尚在以下方面存在不足,需在后续工作中进一步研究:受试验数据采样间隔的限制,现有算法仅采用秒级时间粒度的数据进行验证, 当定位数据的采样间隔增大时,算法识别准确率及可靠性需要进一步探究。
致谢:感谢上海图聚智能科技股份有限公司为本研究提供室内定位轨迹试验数据!
【引文格式】王培晓, 张恒才, 王海波, 等. ST-CFSFDP:快速搜索密度峰值的时空聚类算法. 测绘学报,2019,48(11):1380-1390. DOI: 10.11947/j.AGCS.2019.20180538
标签: #基于密度的聚类算法matlab #时空数据算法 #密度聚类的优点 #密度峰值聚类算法代码 #密度峰值聚类算法综述