一种可扩展快速的轨迹聚类方法技术

技术编号:11759007 阅读:109 留言:0更新日期:2015-07-22 12:33
本发明专利技术提供了一种可扩展快速的轨迹聚类方法,首先进行局部最小生成树(MST)计算,然后生成全局MST,再利用粗粒度并行方法或者细粒度并行方法从全局MST提取聚类。本发明专利技术在点数据聚类的基础之上提出了新的轨迹聚类算法,时间开销比传统的基于模型、基于距离或者基于密度的聚类算法小,能够提高轨迹聚类速度和计算性能,同时本发明专利技术所提出的算法实现了轨迹大数据聚类的可扩展性。

【技术实现步骤摘要】

本专利技术涉及,属于数据挖掘技术和高性能计算领 域。
技术介绍
目前,已有许多成功的轨迹聚类方法。轨迹聚类方法大致可分为三类,即基于模 型、基于距离和基于密度。基于模型的方法是对部分或者全部轨迹数据集进行建模,并为该 模型寻找代表不同聚类的一组拟合参数。整个轨迹聚类的模型有回归混合模型和Markov 模型,EM算法被用来估计这些模型的参数。这些方法中,轨迹模型作为一个整体,因此不能 检测轨迹中相似的部分。 基于距离的聚类算法采用不同的轨迹距离函数和通用聚类算法来进行轨迹聚类。 Chen等人提出的轨迹聚类函数,叫做实序列编辑距离(EDR),EDR用来健壮轨迹的不完美。 该轨迹聚类是基于ERD的分层聚类算法。最近,mi等人提出了一种新奇的基于距离的轨迹 聚类算法一一CluST,CluST的主要思想是将轨迹数据划分成线段,并基于空间和和时间特 征使用一种新的时空线性距离函数。所使用的线段距离函数和轨迹线段是基于k-means聚 类算法。 基于密度的聚类算法每条轨迹的密度阈值从噪声数据中辨别相关的数据项。在基 于密度的轨迹聚类算法中占主导地位的是DBSCAN和点数据聚类(OPTICS),因为DBSCAN和 OPTICS能够发现任意形状的聚类。
技术实现思路
为了解决现有技术的不足,本专利技术首次提以分布式方式在GPU上并行处理轨迹大 数据的聚类方法,提供了,采用分布式和并行方法实现了 轨迹大数据聚类的可扩展性以及提高轨迹聚类速度和计算性能。 本专利技术为解决其技术问题所采用的技术方案是:提供了一种可扩展快速的轨迹聚 类方法,包括以下步骤: (1)局部MST计算: (1-1)已知轨迹凡由Ni个连续不断的点的位置和时间戳组成, Ti = {(zi,t, ),(z2,17 ,(zN|,tN )丨,其中zt」分别表示轨迹Ti中数据点的位置和时间 戳,位置由其叉坐标和7坐标组成31<12<~<、<当前时刻,_ ]_£;5凡为1\的子 集,STi中的点为轨迹Ti中的连续点的一部分,轨迹数据D为N个轨迹的集合IT1,T2,...,Tn} 或者轨迹的子集的集合{SI\,ST2,. . .,STn};首先对轨迹数据D建立STR树索引,STR树索引的每个叶子节点存储近似相等的 轨迹;然后根据索引的叶子节点将轨迹数据D划分为V个子集DnD2、…、Dv,V为叶子节点 数; (1-2)寻找邻域内的轨迹: (1-2-1)将V个子集分别分配给一个CPU线程; (1-2-2)对于每个CPU线程,该CPU线程扫描该CPU线程中的子集的各个轨迹,在 任意时间周期tk到tk+1内的两条轨迹T:和T2,1\和T2均为该CPU线程中的子集中的轨迹, 1'1和1'2是加1£,1^+|)和也 1^_)在时间标记4到^1内的线性插值;所述时间周期、到 4+1为设置的采样频率的倒数,也1^^)和丸,,\+1)是时刻4的点到时刻~ 1的点组成 的两条已知的不同线段; (1-2-3)利用以下时空距离公式近似计算任意两条轨迹的时空距离:【主权项】1. ,其特征在于包括w下步骤: (1)局部MST计算: (1-1)已知轨迹Ti由Ni个连续不断的点的位置和时间戳组成, 1^, = {(Z|、t,),(Z2,t;)、...,(z、|,t、|))-,其中Zj.和tj.分别表示轨迹T冲数据点的位置和时间 戳,位置由其X坐标和y坐标组成,. . <twi<当前时刻,jG[1,NJ;STi为Ti的子集,STi中的点为轨迹Ti中的连续点的一部分,轨迹数据D为N个轨迹的集合{T。T2,. . .,TJ或 者轨迹的子集的集合怯Ti,ST2,. ..,STJ; 首先对轨迹数据D建立STR树索引,STR树索引的每个叶子节点存储近似相等的轨迹; 然后根据索引的叶子节点将轨迹数据D划分为V个子集Di、〇2、…、Dv,V为叶子节点数; (1-2)寻找邻域内的轨迹: (1-2-1)将V个子集分别分配给一个CPU线程; (1-2-2)对于每个CPU线程,该CPU线程扫描该CPU线程中的子集的各个轨迹,在任意 时间周期tk到tW内的两条轨迹T1和T2,Ti和T2均为该CPU线程中的子集中的轨迹,T1和 T2是(Ptk,Ptk+i)和(qtk,qtk+i)在时间标记tk到tW内的线性插值;所述时间周期tk到tW 为设置的采样频率的倒数,(Ptk,Ptw)和(q,k,qtw)是时刻tk的点到时刻tw的点组成的 两条已知的不同线段; (1-2-3)利用W下时空距离公式近似计算任意两条轨迹的时空距离:其中,Dist(Ti,T2)表示任意两条轨迹Ti和T2的时空距离,D|i,|?作)是随时间变化的欧 氏距离,通过W下公式计算:其中,qtk.x和y分别表示数据点(qtk,tk)的X坐标和y坐标,Ptt.x和Ptk.y分别表 示数据点(Ptt,tk)的X坐标和y坐标,Qtw.x和gyrY分别表示数据点(qtk+i,tk+i)的X坐 标和y坐标,Pit+i'X和p、+i.y分别表示数据点(Ptk+i,tkJ的X坐标和y坐标; (1-2-4)判断两条轨迹之间的时空距离是否小于预设值e,若是则两条轨迹为邻域e内的轨迹,将两条轨迹进行聚类; (1-2-5)重复步骤(1-2-2)至步骤(1-2-4),直到每个CPU线程中子集的任意两条轨迹 完成聚类; (1-:3)对于每个CPU线程,计算该CPU线程中的每条轨迹到该轨迹的MBB之间的距离, 其中任意一条轨迹L到其MBB之间的距离利用W下公式计算:其中,M表示轨迹T。的MBB,g表示轨迹T。投影到其MBB的线段数目,i表示轨迹T。投 影到其MBB的线段序号,T。.linei表示轨迹T。投影到其MBB的第i条线段; (1-4)生成局部MST; (1-4-1)设置一个共享队列Q使其对所有CPU线程共享; (1-4-2)对于每个轨迹,利用公式(1)分别计算该轨迹与其它各轨迹之间的核屯、距离e',若e' <e则其他轨迹为该轨迹邻域e内的轨迹; (1-4-3)对于每个轨迹,判断该轨迹Ti在邻域e内的轨迹数目是否大于预设的一个聚 类中最少的轨迹数目minNumofTrs,若是则轨迹Ti为核屯、轨迹,进入步骤(1-4-4); (1-4-4)在所有两个轨迹之间的核屯、距离值中,将最小的核屯、距离值插入队列Q; (1-4-5)重复步骤(1-4-2)至步骤(1-4-4)直到对每个轨迹判断其是否为核屯、轨迹; (2) 生成全局MST; (2-1)创建一个空的MST; (2-2)归并步骤(1-4)生成的所有局部MST,得到全局MST; (3) 利用粗粒度并行方法或细粒度并行方法从全局MST提取聚类。2. 根据权利要求1所述的可扩展快速的轨迹聚类方法,其特征在于:步骤(2)通过 FindNei曲bor函数寻找邻域内的轨迹。3. 根据权利要求1所述的可扩展快速的轨迹聚类方法,其特征在于:步骤(3)所述的 粗粒度并行方法包括W下步骤:利用Hyper-Q将2个W上CPU线程同时连接一个GPU启动 GPU内核,从全局MST提取聚类。4. 根据权利要求1所述的可扩展快速的轨迹聚类方法,其特征在于:步骤(3本文档来自技高网...
一种可扩展快速的轨迹聚类方法

【技术保护点】
一种可扩展快速的轨迹聚类方法,其特征在于包括以下步骤:(1)局部MST计算:(1‑1)已知轨迹Ti由Ni个连续不断的点的位置和时间戳组成,其中zj和tj分别表示轨迹Ti中数据点的位置和时间戳,位置由其x坐标和y坐标组成,t1<t2<...<tNi<当前时刻,j∈[1,Ni];STi为Ti的子集,STi中的点为轨迹Ti中的连续点的一部分,轨迹数据D为N个轨迹的集合{T1,T2,...,TN}或者轨迹的子集的集合{ST1,ST2,...,STN};首先对轨迹数据D建立STR树索引,STR树索引的每个叶子节点存储近似相等的轨迹;然后根据索引的叶子节点将轨迹数据D划分为V个子集D1、D2、…、DV,V为叶子节点数;(1‑2)寻找邻域内的轨迹:(1‑2‑1)将V个子集分别分配给一个CPU线程;(1‑2‑2)对于每个CPU线程,该CPU线程扫描该CPU线程中的子集的各个轨迹,在任意时间周期tk到tk+1内的两条轨迹T1和T2,T1和T2均为该CPU线程中的子集中的轨迹,T1和T2是和在时间标记tk到tk+1内的线性插值;所述时间周期tk到tk+1为设置的采样频率的倒数,和是时刻tk的点到时刻tk+1的点组成的两条已知的不同线段;(1‑2‑3)利用以下时空距离公式近似计算任意两条轨迹的时空距离:Dist(T1,T2)≈Σi=1N-1((DT1,T2(tk)+(DT1,T2(tk-1)×(tk-1-tk))......(1)]]>其中,Dist(T1,T2)表示任意两条轨迹T1和T2的时空距离,是随时间变化的欧氏距离,通过以下公式计算:DT1,T2(t)=a×t2+b×t+c......(2)]]>a=A(tk-1-tk)2......(3)]]>b=Btk-tk-1-2×A×tk-1(tk+1-tk)2......(4)]]>c=A×tk2tk+1-tk-B×tktk+1-tk+C......(5)]]>A=(qtk+1.x-qtk.x-ptk+1.x+ptk.x)2+(qtk+1.y-qtk.y-ptk+1.y+ptk.y)2......(6)]]>B=2((qtk+1.x-qtk.x-ptk+1.x+ptk.x)(qtk.x-ptk.x)+(qtk+1.y-qtk.y-ptk+1.y+ptk.y)(qtk.y-ptk.y))......(7)]]>C=(qtk.x-ptk.x)2+(qtk.y-ptk.y)2......(8)]]>其中,和分别表示数据点的x坐标和y坐标,和分别表示数据点的x坐标和y坐标,和分别表示数据点的x坐标和y坐标,和分别表示数据点的x坐标和y坐标;(1‑2‑4)判断两条轨迹之间的时空距离是否小于预设值ε,若是则两条轨迹为邻域ε内的轨迹,将两条轨迹进行聚类;(1‑2‑5)重复步骤(1‑2‑2)至步骤(1‑2‑4),直到每个CPU线程中子集的任意两条轨迹完成聚类;(1‑3)对于每个CPU线程,计算该CPU线程中的每条轨迹到该轨迹的MBB之间的距离,其中任意一条轨迹Ta到其MBB之间的距离利用以下公式计算:dist(Ta,M)=Σi=1gmin Dist(Ta.linei,M)......(9)]]>其中,M表示轨迹Ta的MBB,g表示轨迹Ta投影到其MBB的线段数目,i表示轨迹Ta投影到其MBB的线段序号,Ta.linei表示轨迹Ta投影到其MBB的第i条线段;(1‑4)生成局部MST:(1‑4‑1)设置一个共享队列Q使其对所有CPU线程共享;(1‑4‑2)对于每个轨迹,利用公式(1)分别计算该轨迹与其它各轨迹之间的核心距离ε′,若ε′<ε则其他轨迹为该轨迹邻域ε内的轨迹;(1‑4‑3)对于每个轨迹,判断该轨迹Ti在邻域ε内的轨迹数目是否大于预设的一个聚类中最少的轨迹数目minNumofTrs,若是则轨迹Ti为核心轨迹,进入步骤(1‑4‑4);(1‑4‑4)在所有两个轨迹之间的核心距离值中,将最小的核心距离值插入队列Q;(1‑4‑5)重复步骤(1‑4‑2)至步骤(1‑4‑4)直到对每个轨迹判断其是否为核心轨迹;(2)生成全局MST:(2‑1)创建一个空的MST;(2‑2)归并步骤(1‑4)生成的所有局部MST,得到全局MST;(3)利用粗粒度并行方法或细粒度并行方法从全局MST提取聚类。...

【技术特征摘要】

【专利技术属性】
技术研发人员:邓泽陈小岛陈云亮胡阳阳朱茂杜波黄晓辉
申请(专利权)人:中国地质大学武汉
类型:发明
国别省市:湖北;42

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

1