一種可擴(kuò)展快速的軌跡聚類方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種可擴(kuò)展快速的軌跡聚類方法,屬于數(shù)據(jù)挖掘技術(shù)和高性能計(jì)算領(lǐng) 域。
【背景技術(shù)】
[0002] 目前,已有許多成功的軌跡聚類方法。軌跡聚類方法大致可分為三類,即基于模 型、基于距離和基于密度?;谀P偷姆椒ㄊ菍?duì)部分或者全部軌跡數(shù)據(jù)集進(jìn)行建模,并為該 模型尋找代表不同聚類的一組擬合參數(shù)。整個(gè)軌跡聚類的模型有回歸混合模型和Markov 模型,EM算法被用來估計(jì)這些模型的參數(shù)。這些方法中,軌跡模型作為一個(gè)整體,因此不能 檢測軌跡中相似的部分。
[0003] 基于距離的聚類算法采用不同的軌跡距離函數(shù)和通用聚類算法來進(jìn)行軌跡聚類。 Chen等人提出的軌跡聚類函數(shù),叫做實(shí)序列編輯距離(EDR),EDR用來健壯軌跡的不完美。 該軌跡聚類是基于ERD的分層聚類算法。最近,mi等人提出了一種新奇的基于距離的軌跡 聚類算法一一CluST,CluST的主要思想是將軌跡數(shù)據(jù)劃分成線段,并基于空間和和時(shí)間特 征使用一種新的時(shí)空線性距離函數(shù)。所使用的線段距離函數(shù)和軌跡線段是基于k-means聚 類算法。
[0004] 基于密度的聚類算法每條軌跡的密度閾值從噪聲數(shù)據(jù)中辨別相關(guān)的數(shù)據(jù)項(xiàng)。在基 于密度的軌跡聚類算法中占主導(dǎo)地位的是DBSCAN和點(diǎn)數(shù)據(jù)聚類(OPTICS),因?yàn)镈BSCAN和 OPTICS能夠發(fā)現(xiàn)任意形狀的聚類。
【發(fā)明內(nèi)容】
[0005] 為了解決現(xiàn)有技術(shù)的不足,本發(fā)明首次提以分布式方式在GPU上并行處理軌跡大 數(shù)據(jù)的聚類方法,提供了一種可擴(kuò)展快速的軌跡聚類方法,采用分布式和并行方法實(shí)現(xiàn)了 軌跡大數(shù)據(jù)聚類的可擴(kuò)展性以及提高軌跡聚類速度和計(jì)算性能。
[0006] 本發(fā)明為解決其技術(shù)問題所采用的技術(shù)方案是:提供了一種可擴(kuò)展快速的軌跡聚 類方法,包括以下步驟:
[0007] (1)局部MST計(jì)算:
[0008] (1-1)已知軌跡凡由Ni個(gè)連續(xù)不斷的點(diǎn)的位置和時(shí)間戳組成, Ti = {(zi,t, ),(z2,17 ,(zN|,tN )丨,其中zt」分別表示軌跡Ti中數(shù)據(jù)點(diǎn)的位置和時(shí)間 戳,位置由其叉坐標(biāo)和7坐標(biāo)組成31<12<~<、<當(dāng)前時(shí)刻,_ ]_£[1,隊(duì)];5凡為1\的子 集,STi中的點(diǎn)為軌跡Ti中的連續(xù)點(diǎn)的一部分,軌跡數(shù)據(jù)D為N個(gè)軌跡的集合IT1,T2,...,Tn} 或者軌跡的子集的集合{SI\,ST2,. . .,STn};
[0009]首先對(duì)軌跡數(shù)據(jù)D建立STR樹索引,STR樹索引的每個(gè)葉子節(jié)點(diǎn)存儲(chǔ)近似相等的 軌跡;然后根據(jù)索引的葉子節(jié)點(diǎn)將軌跡數(shù)據(jù)D劃分為V個(gè)子集DnD2、…、Dv,V為葉子節(jié)點(diǎn) 數(shù);
[0010] (1-2)尋找鄰域內(nèi)的軌跡:
[0011] (1-2-1)將V個(gè)子集分別分配給一個(gè)CPU線程;
[0012] (1-2-2)對(duì)于每個(gè)CPU線程,該CPU線程掃描該CPU線程中的子集的各個(gè)軌跡,在 任意時(shí)間周期tk到tk+1內(nèi)的兩條軌跡T:和T2,1\和T2均為該CPU線程中的子集中的軌跡, 1'1和1'2是加1£,1^+|)和也 1^_)在時(shí)間標(biāo)記4到^1內(nèi)的線性插值;所述時(shí)間周期、到 4+1為設(shè)置的采樣頻率的倒數(shù),也1^^)和丸,,\+1)是時(shí)刻4的點(diǎn)到時(shí)刻~ 1的點(diǎn)組成 的兩條已知的不同線段;
[0013] (1-2-3)利用以下時(shí)空距離公式近似計(jì)算任意兩條軌跡的時(shí)空距離:
【主權(quán)項(xiàng)】
1. 一種可擴(kuò)展快速的軌跡聚類方法,其特征在于包括w下步驟: (1)局部MST計(jì)算: (1-1)已知軌跡Ti由Ni個(gè)連續(xù)不斷的點(diǎn)的位置和時(shí)間戳組成, 1^, = {(Z|、t,),(Z2,t;)、...,(z、|,t、|))-,其中Zj.和tj.分別表示軌跡T沖數(shù)據(jù)點(diǎn)的位置和時(shí)間 戳,位置由其X坐標(biāo)和y坐標(biāo)組成,. . <twi<當(dāng)前時(shí)刻,jG[1,NJ;STi為Ti的子集,STi中的點(diǎn)為軌跡Ti中的連續(xù)點(diǎn)的一部分,軌跡數(shù)據(jù)D為N個(gè)軌跡的集合{T。T2,. . .,TJ或 者軌跡的子集的集合怯Ti,ST2,. ..,STJ; 首先對(duì)軌跡數(shù)據(jù)D建立STR樹索引,STR樹索引的每個(gè)葉子節(jié)點(diǎn)存儲(chǔ)近似相等的軌跡; 然后根據(jù)索引的葉子節(jié)點(diǎn)將軌跡數(shù)據(jù)D劃分為V個(gè)子集Di、〇2、…、Dv,V為葉子節(jié)點(diǎn)數(shù); (1-2)尋找鄰域內(nèi)的軌跡: (1-2-1)將V個(gè)子集分別分配給一個(gè)CPU線程; (1-2-2)對(duì)于每個(gè)CPU線程,該CPU線程掃描該CPU線程中的子集的各個(gè)軌跡,在任意 時(shí)間周期tk到tW內(nèi)的兩條軌跡T1和T2,Ti和T2均為該CPU線程中的子集中的軌跡,T1和 T2是(Ptk,Ptk+i)和(qtk,qtk+i)在時(shí)間標(biāo)記tk到tW內(nèi)的線性插值;所述時(shí)間周期tk到tW 為設(shè)置的采樣頻率的倒數(shù),(Ptk,Ptw)和(q,k,qtw)是時(shí)刻tk的點(diǎn)到時(shí)刻tw的點(diǎn)組成的 兩條已知的不同線段; (1-2-3)利用W下時(shí)空距離公式近似計(jì)算任意兩條軌跡的時(shí)空距離:
其中,Dist(Ti,T2)表示任意兩條軌跡Ti和T2的時(shí)空距離,D|i,|?作)是隨時(shí)間變化的歐 氏距離,通過W下公式計(jì)算:
其中,qtk.x和y分別表示數(shù)據(jù)點(diǎn)(qtk,tk)的X坐標(biāo)和y坐標(biāo),Ptt.x和Ptk.y分別表 示數(shù)據(jù)點(diǎn)(Ptt,tk)的X坐標(biāo)和y坐標(biāo),Qtw.x和gyrY分別表示數(shù)據(jù)點(diǎn)(qtk+i,tk+i)的X坐 標(biāo)和y坐標(biāo),Pit+i'X和p、+i.y分別表示數(shù)據(jù)點(diǎn)(Ptk+i,tkJ的X坐標(biāo)和y坐標(biāo); (1-2-4)判斷兩條軌跡之間的時(shí)空距離是否小于預(yù)設(shè)值e,若是則兩條軌跡為鄰域e內(nèi)的軌跡,將兩條軌跡進(jìn)行聚類; (1-2-5)重復(fù)步驟(1-2-2)至步驟(1-2-4),直到每個(gè)CPU線程中子集的任意兩條軌跡 完成聚類; (1-:3)對(duì)于每個(gè)CPU線程,計(jì)算該CPU線程中的每條軌跡到該軌跡的MBB之間的距離, 其中任意一條軌跡L到其MBB之間的距離利用W下公式計(jì)算:
其中,M表示軌跡T。的MBB,g表示軌跡T。投影到其MBB的線段數(shù)目,i表示軌跡T。投 影到其MBB的線段序號(hào),T。.linei表示軌跡T。投影到其MBB的第i條線段; (1-4)生成局部MST; (1-4-1)設(shè)置一個(gè)共享隊(duì)列Q使其對(duì)所有CPU線程共享; (1-4-2)對(duì)于每個(gè)軌跡,利用公式(1)分別計(jì)算該軌跡與其它各軌跡之間的核屯、距離e',若e' <e則其他軌跡為該軌跡鄰域e內(nèi)的軌跡; (1-4-3)對(duì)于每個(gè)軌跡,判斷該軌跡Ti在鄰域e內(nèi)的軌跡數(shù)目是否大于預(yù)設(shè)的一個(gè)聚 類中最少的軌跡數(shù)目minNumofTrs,若是則軌跡Ti為核屯、軌跡,進(jìn)入步驟(1-4-4); (1-4-4)在所有兩個(gè)軌跡之間的核屯、距離值中,將最小的核屯、距離值插入隊(duì)列Q; (1-4-5)重復(fù)步驟(1-4-2)至步驟(1-4-4)直到對(duì)每個(gè)軌跡判斷其是否為核屯、軌跡; (2) 生成全局MST; (2-1)創(chuàng)建一個(gè)空的MST; (2-2)歸并步驟(1-4)生成的所有局部MST,得到全局MST; (3) 利用粗粒度并行方法或細(xì)粒度并行方法從全局MST提取聚類。
2. 根據(jù)權(quán)利要求1所述的可擴(kuò)展快速的軌跡聚類方法,其特征在于:步驟(2)通過 FindNei曲bor函數(shù)尋找鄰域內(nèi)的軌跡。
3. 根據(jù)權(quán)利要求1所述的可擴(kuò)展快速的軌跡聚類方法,其特征在于:步驟(3)所述的 粗粒度并行方法包括W下步驟:利用Hyper-Q將2個(gè)W上CPU線程同時(shí)連接一個(gè)GPU啟動(dòng) GPU內(nèi)核,從全局MST提取聚類。
4. 根據(jù)權(quán)利要求1所述的可擴(kuò)展快速的軌跡聚類方法,其特征在于:步驟(3)所述的 細(xì)粒度并行方法包括W下步驟: (3-1)MST的并行計(jì)算; (3-1-1)并行計(jì)算每條軌跡之間的時(shí)空距離,將結(jié)果W矩陣形式存儲(chǔ)到GPU; (3-1-2)利用GPU線程獲取所有軌跡的核屯、距離,利用所有軌跡的核屯、距離構(gòu)成列表L,列表L中的每條信息記錄為邊(化。W),表示任意兩條互相可達(dá)的軌跡tri和trj之 間的可達(dá)距離W,軌跡付1和trj.之間的可達(dá)距離W為鄰域e內(nèi)最小的核屯、距離; (3-1-3)掃描所有MST中的軌跡,如果一個(gè)軌跡的祖先節(jié)點(diǎn)是否屬于它的孩子節(jié)點(diǎn),貝U構(gòu)成環(huán);記錄下每個(gè)環(huán)對(duì)應(yīng)的軌跡,刪除MST中的環(huán); (3-2)MSTs的并行歸并; (3-2-1)每個(gè)GPU線程合并一對(duì)最小生成樹MST,; (3-2-2)當(dāng)兩個(gè)MST,根節(jié)點(diǎn)之間的時(shí)空距離小于e時(shí),通過將一個(gè)的根節(jié)點(diǎn)指針指向 另一個(gè)來合并兩個(gè)MST,; (3-2-3)重復(fù)步驟(3-2-1)到(3-2-2),直到生成全局MST; (3-3)聚類的并行提取: (3-3-1)各個(gè)GPU線程并行地初始化每個(gè)軌跡,使各個(gè)軌跡具有單獨(dú)的軌跡ID集群標(biāo) 識(shí); (3-3-2)從所有GPU線程中選取一組GPU線程,該組GPU線程中的每一個(gè)GPU線程檢查 列表L中的一個(gè)邊,對(duì)于邊(t。tj.,wu)檢查任意軌跡ti與tj.是否屬于鄰域時(shí)空距離內(nèi)的同 一聚類,若是則將兩條軌跡ti與tj.置為相同的聚類ID。
【專利摘要】本發(fā)明提供了一種可擴(kuò)展快速的軌跡聚類方法,首先進(jìn)行局部最小生成樹(MST)計(jì)算,然后生成全局MST,再利用粗粒度并行方法或者細(xì)粒度并行方法從全局MST提取聚類。本發(fā)明在點(diǎn)數(shù)據(jù)聚類的基礎(chǔ)之上提出了新的軌跡聚類算法,時(shí)間開銷比傳統(tǒng)的基于模型、基于距離或者基于密度的聚類算法小,能夠提高軌跡聚類速度和計(jì)算性能,同時(shí)本發(fā)明所提出的算法實(shí)現(xiàn)了軌跡大數(shù)據(jù)聚類的可擴(kuò)展性。
【IPC分類】G06K9-62
【公開號(hào)】CN104794494
【申請(qǐng)?zhí)枴緾N201510217525
【發(fā)明人】鄧澤, 陳小島, 陳云亮, 胡陽陽, 朱茂, 杜波, 黃曉輝
【申請(qǐng)人】中國地質(zhì)大學(xué)(武漢)
【公開日】2015年7月22日
【申請(qǐng)日】2015年4月30日