江浩斌,路保松,李傲雪
(江蘇大學(xué)汽車與交通工程學(xué)院,鎮(zhèn)江 212013)
隨著定位設(shè)備的廣泛使用,人們采集了大量移動(dòng)體的軌跡數(shù)據(jù),諸如船只貨運(yùn)、道路車輛、動(dòng)物遷徙、人類行為、颶風(fēng)等。軌跡數(shù)據(jù)是包含時(shí)間戳的一組位置點(diǎn)集成的時(shí)間和空間信息,蘊(yùn)含了豐富的運(yùn)動(dòng)模式和重要的現(xiàn)實(shí)意義。
聚類分析是一種用于數(shù)據(jù)挖掘的技術(shù),是一種無監(jiān)督的機(jī)器學(xué)習(xí)方法,可以在沒有先驗(yàn)知識(shí)的情況下,按照一定規(guī)則劃分類簇,使得同一類簇樣本相似度高的同時(shí)不同類簇樣本的相似度低。目前針對(duì)軌跡數(shù)據(jù)的聚類研究已經(jīng)得到了廣泛關(guān)注,例如,利用船舶自動(dòng)識(shí)別系統(tǒng)記錄的數(shù)據(jù)對(duì)船舶軌跡進(jìn)行聚類分析,用于海上交通研究[1];對(duì)出租車行駛軌跡進(jìn)行聚類分析,用于研究城市交通熱點(diǎn),規(guī)劃城市路線[2-3];使用聚類算法預(yù)測(cè)用戶移動(dòng)行為并進(jìn)行興趣點(diǎn)推薦[4]等。
密度峰值聚類(density peaks clustering,DPC)是一種特殊的密度聚類算法,該算法最早被Rodriguez等[5]發(fā)表在《Science》期刊上。該算法通過計(jì)算樣本的局部密度和相對(duì)距離確定類簇中心,進(jìn)而將其余非中心樣本按相似度分配給最近的類簇。與密度聚類和均值漂移法相同,DPC 可以聚出任意形狀的類簇,并且不需要提前指定簇的數(shù)量。
DPC 算法簡(jiǎn)單有效,但在處理軌跡數(shù)據(jù)時(shí)存在以下問題:(1)沒有統(tǒng)一的相似性度量準(zhǔn)則[6],不能準(zhǔn)確定義軌跡間的相似度;(2)DPC處理高維數(shù)據(jù)集的效果不佳,而軌跡數(shù)據(jù)中隱藏著很多無關(guān)的噪聲數(shù)據(jù)影響著距離度量的準(zhǔn)確性;(3)計(jì)算局部密度時(shí)引入?yún)?shù)截?cái)嗑嚯xdc,該值的選擇對(duì)聚類結(jié)果影響較大。
對(duì)于軌跡相似性度量的問題,許多學(xué)者提出了自己的見解。其中,歐式距離[7]是常見的一對(duì)一相似性度量,但是僅限于長(zhǎng)度相等的軌跡。動(dòng)態(tài)時(shí)間規(guī)整(dynamic time warping,DTW)[8]則可以量化不同長(zhǎng)度軌跡之間的相似性,算法靈活且效果較好,但是結(jié)果受噪聲點(diǎn)的影響非常大。最長(zhǎng)公共子序列(longest common subsequence,LCS)[9]是基于編輯距離計(jì)算軌跡相似度,LCS 對(duì)噪聲有一定的魯棒性。Yoo 等[10]在DTW 的基礎(chǔ)上,將DTW 中的距離項(xiàng)替換為Jensen-Shannon 散度和Wasserstein 距離的線性組合,重新定義了軌跡距離度量。Amir 等[11]提出了一種基于分段軌跡方向變化的軌跡相似性度量法。該方法利用光譜聚類對(duì)軌跡進(jìn)行分割,提取子軌跡的方向變化后,采用特征向量測(cè)量軌跡間的相似性。
由于維度災(zāi)難的影響,聚類算法在面對(duì)高維數(shù)據(jù)時(shí)難以獲得理想的聚類效果。主成分分析[12]是一種使用廣泛的數(shù)據(jù)降維算法,其通過數(shù)學(xué)變換的方式將原始高維數(shù)據(jù)空間投影到能夠突出數(shù)據(jù)主要特征的低維子空間上,有效緩解了維度災(zāi)難。Wang[13]將PCA(principal component analysis)應(yīng)用到DPC 聚類算法中,經(jīng)過實(shí)驗(yàn)證明了算法的可行性和有效性。Cao 等[14]將PCA 算法用于船舶數(shù)據(jù)集上,驗(yàn)證了算法在船舶軌跡聚類研究中的優(yōu)越性。
DPC 算法在計(jì)算局部密度中定義的距離閾值dc需要人為選定,不確定性較高。針對(duì)局部密度計(jì)算中存在的問題,紀(jì)霞等[15]利用相對(duì)距離將數(shù)據(jù)映射到相對(duì)鄰域中,再從相對(duì)鄰域中計(jì)算數(shù)據(jù)局部密度,縮小了密度統(tǒng)計(jì)的范圍。Ren 等[16]提出一種改進(jìn)的基于分層k 近鄰(k-nearest neighbor,KNN)的DPC 算法,該算法對(duì)數(shù)據(jù)進(jìn)行分層并賦予不同權(quán)重,重新設(shè)計(jì)了局部密度的計(jì)算方法,在數(shù)據(jù)集上證明了算法的優(yōu)越性。
針對(duì)DPC 算法在軌跡數(shù)據(jù)上的不足,本文就軌跡數(shù)據(jù)特性改進(jìn)了DTW 相似性度量,在此基礎(chǔ)上提出了一種k 近鄰和主成分融合的密度峰值聚類算法(DPC-KP),該算法通過PCA 對(duì)軌跡數(shù)據(jù)進(jìn)行降維,引入k 近鄰思想計(jì)算局部密度,改進(jìn)DTW 算法重新定義了樣本間的相似性度量;同時(shí),提出了一種適合于汽車行駛軌跡數(shù)據(jù)集的密度峰值聚類算法。
密度峰值聚類是一種特殊的密度聚類算法,該算法基于兩個(gè)假設(shè):(1)聚類中心被局部密度較低的鄰居包圍;(2)聚類中心與局部密度較高的樣本間的距離相對(duì)較遠(yuǎn)。為了量化上述假設(shè),引入變量局部密度ρi和相對(duì)距離δi,定義如下。
定義1 局部密度ρi:
式中:dij是樣本i與樣本j之間的距離;dc代表截?cái)嗑嚯x。對(duì)于大規(guī)模樣本使用截?cái)嗪思词剑?)計(jì)算局部密度;小規(guī)模樣本則使用高斯核即式(2)計(jì)算局部密度。
定義2 相對(duì)距離δi:
相對(duì)距離δi表示樣本xi到局部密度比自身大且離自身最近的樣本間的距離。
聚類中心應(yīng)具備兩個(gè)特征:局部密度ρi較高,相對(duì)距離δi較大。所以,通過繪制ρi-δi決策圖可以確定其他簇中心。然后,將其余樣本按相似度度量分配到局部密度比自身大且離自身距離最近的簇中心中,從而形成最終的聚類結(jié)果。算法步驟如下。
算法1 DPC算法
輸入:樣本數(shù)據(jù)L,參數(shù)dc
輸出:聚類結(jié)果C
步驟1:計(jì)算各樣本之間的相似度距離;
步驟2:依據(jù)式(1)計(jì)算樣本的局部密度ρi;
步驟3:依據(jù)式(3)計(jì)算樣本的相對(duì)距離δi;
步驟4:繪制決策圖ρi-δi,找到密度峰值標(biāo)記為類簇中心;
步驟5:將其余樣本分配給局部密度比自身大且離它距離最近樣本所在的類簇中;
步驟6:輸出聚類結(jié)果C。
雖然DPC 算法在大多數(shù)情況下具有較好的效果,但仍存在一些如下不足。
(1)局部密度的計(jì)算。截?cái)嗑嚯xdc直接影響局部密度結(jié)果,而dc值又需要提前設(shè)定。不同的dc值在面對(duì)同一樣本時(shí),聚類結(jié)果可能大有不同。如圖1所示,當(dāng)dc值取的較小時(shí),樣本被分為3個(gè)類簇;當(dāng)把dc值調(diào)大時(shí),DPC 會(huì)將右方和下方類簇聚到一起形成兩個(gè)類簇。

圖1 截?cái)嗑嚯xdc對(duì)聚類結(jié)果的影響
除了dc值之外,局部密度度量準(zhǔn)則對(duì)聚類效果也有影響。如圖2 所示,當(dāng)dc值相同時(shí),同一數(shù)據(jù)集采用不同的高斯核函數(shù)會(huì)出現(xiàn)不同的聚類結(jié)果。

圖2 局部密度度量對(duì)聚類結(jié)果的影響
(2)DPC 在按相似度分配非聚類中心時(shí)會(huì)產(chǎn)生連帶錯(cuò)誤。當(dāng)某一樣本在分配時(shí)發(fā)生錯(cuò)誤,有可能會(huì)連帶其周圍的樣本也分配到錯(cuò)誤的類簇。這種分配錯(cuò)誤不僅與DPC 分配策略有關(guān),也和局部密度和樣本相似性度量有關(guān)[17]。
軌跡段之間的相似度描述相比于傳統(tǒng)兩點(diǎn)之間距離的描述更加復(fù)雜。線段具有長(zhǎng)度和方向信息,不能簡(jiǎn)單地用歐氏距離來判斷線段之間的相似性。Wang等[18]評(píng)估了LCS、DTW 等主流相似度測(cè)量算法在不同時(shí)間序列數(shù)據(jù)集上的準(zhǔn)確性。實(shí)驗(yàn)結(jié)果證明,DTW 算法可以獲得最為精確的相似度測(cè)量結(jié)果。本節(jié)我們改進(jìn)原有的DTW 相似度算法,在保留其原有優(yōu)點(diǎn)的基礎(chǔ)上,改善其在軌跡形狀分析方面的不足。
定義3 點(diǎn)-點(diǎn)距離
假設(shè)存在軌跡Li={p1,p2,…pi,…,pm},pi-1(xi-1,yi-1),pi(xi,yi),pi+1(xi+1,yi+1)是軌跡Li中連續(xù)的樣本點(diǎn),點(diǎn)pmid1、pmid2分別是軌跡段pi-1pi和pi pi+1的中點(diǎn),見圖3。已知pmid1(xmid1,ymid1) 與pmid2(xmid2,ymid2)坐標(biāo)為

圖3 點(diǎn)-點(diǎn)距離
同樣,在圖3 中給定另一條軌跡Lj={q1,q2,…,qj,…,qn},其中3 個(gè)連續(xù)軌跡點(diǎn)分別為qj-1,qj,qj+1。
定義軌跡點(diǎn)qj(xj,yj)到pi兩端軌跡段中點(diǎn)連線的距離d(qj,pi)為單向點(diǎn)-點(diǎn)距離。當(dāng)軌跡點(diǎn)qj在線段pmid1pmid2上的投影點(diǎn)在該線段的延長(zhǎng)線上時(shí),單向點(diǎn)-點(diǎn)距離定義為軌跡點(diǎn)qj和與其相近的線段端點(diǎn)間的距離。因此,d(qj,pi)計(jì)算式為
同理,可以算出點(diǎn)pi到點(diǎn)qj兩端軌跡段中點(diǎn)連線的距離d(pi,qj)。為了改善不同軌跡在對(duì)應(yīng)路段軌跡點(diǎn)間隔不一致導(dǎo)致度量不準(zhǔn)確的問題,將兩個(gè)單向點(diǎn)-點(diǎn)距離相加得到的函數(shù)定義為軌跡點(diǎn)pi與軌跡點(diǎn)qj之間的距離D(pi,qj):
定義4 段-段距離
分別給定軌跡Li和軌跡Lj的子軌跡段pi pi+1和qjqj+1。給出兩子軌跡段之間的距離函數(shù):
段-段距離示意圖如圖4所示,點(diǎn)q'j和點(diǎn)q'j+1分別是線段Lj兩個(gè)端點(diǎn)在線段Li上的投影點(diǎn)。可以看出,兩條軌跡段之間的夾角和它們的長(zhǎng)度也影響著軌跡段之間的相似度。軌跡段間的夾角θ范圍為[0°,90°],當(dāng)夾角越大時(shí),兩條軌跡的相似度越低。軌跡段pi pi+1和qjqj+1長(zhǎng)度相差越大,兩條軌跡的相似度也越低。然而,這些形狀參數(shù)對(duì)軌跡相似度的影響并沒有在模型中體現(xiàn)出來。

圖4 段-段距離
通過上述對(duì)影響因素的分析,改進(jìn)后的段-段距離為
式中:|li|+|lj|/max{Li,Lj}是調(diào)整軌跡段長(zhǎng)度在距離函數(shù)中權(quán)重的調(diào)節(jié)因子;sinθ是軌跡夾角在距離函數(shù)中權(quán)重的調(diào)節(jié)因子。
在段-段距離的定義下,根據(jù)DTW 的思想計(jì)算累積距離作為兩條軌跡間的距離:
式中:Head(L)表示該軌跡上的第一段軌跡;Rest(L)表示除去首段軌跡后的軌跡。
根據(jù)上述計(jì)算,累積段-段距離代表整條軌跡間的距離,從而量化軌跡間的相似度。至此,本文提出了適合汽車行駛軌跡數(shù)據(jù)的相似性度量模型。
主成分分析是一種用于提高無監(jiān)督學(xué)習(xí)效率的維度約減算法。PCA 的主要思想是將原始樣本數(shù)據(jù)映射到更低維的子空間上,降低樣本維度,凸顯樣本數(shù)據(jù)主要特征變化。假設(shè)存在樣本X是一個(gè)M×N的矩陣,則降維原理如下。
調(diào)整每個(gè)樣本屬性具有相同的均值且為0。然后計(jì)算協(xié)方差矩陣∑:
計(jì)算協(xié)方差矩陣∑的特征向量,并將這些特征向量組成矩陣U:
式中:u1是最大的特征值對(duì)應(yīng)的特征向量;u2對(duì)應(yīng)第二大特征值,以此類推。
通過計(jì)算可以得到樣本在(u1,u2,...,uM)上的表達(dá):
式中下標(biāo)“rot”表示一種從原始樣本的旋轉(zhuǎn)映射關(guān)系。若將其降至d維,則需保留Xrot的前d位非零成分,即
DPC基于截?cái)嗑嚯xdc和全局的樣本分布求局部密度。算法主要考慮樣本截?cái)嗑嚯x內(nèi)的樣本數(shù)量,致使密集區(qū)樣本的局部密度大于稀釋區(qū)樣本,極大的影響了簇中心的準(zhǔn)確性。針對(duì)該問題,本文引入k 近鄰相對(duì)密度的思想,重新定義局部密度的計(jì)算方式。
假設(shè)軌跡樣本Li、Lj,樣本之間的距離表示為DTW(Li,Lj),則Li的k個(gè)最近鄰KNN(Li)表示為
通過KNN(Li)定義局部密度ρi為
該算法中存在唯一參數(shù)k,k定義為樣本總數(shù)N與百分比p的積,即k=p×N。
樣本點(diǎn)到其k個(gè)近鄰樣本的距離越小,則局部密度值越大。局部密度計(jì)算范圍從原來的整個(gè)數(shù)據(jù)集縮減為樣本的k個(gè)近鄰樣本,這樣得到的局部密度僅與k近鄰相關(guān),能夠更好地反映樣本點(diǎn)的局部信息。DPC-KP 算法依據(jù)式(15)計(jì)算局部密度,依據(jù)式(3)計(jì)算相對(duì)距離,并繪制聚類中心決策圖。
算法2 DPC-KP算法
輸入:樣本數(shù)據(jù)L,百分比參數(shù)p
輸出:聚類結(jié)果C
步驟1:歸一化樣本,使其具有相同的均值0 及方差;
步驟2:依據(jù)式(10)計(jì)算協(xié)方差矩陣∑;
步驟3:計(jì)算協(xié)方差矩陣∑的特征值和特征向量;
步驟4:利用PCA算法對(duì)原始數(shù)據(jù)進(jìn)行降維;
步驟5:按照式(9)計(jì)算樣本間的相似性度量;
步驟6:按照式(15)計(jì)算樣本的局部密度ρi;
步驟7:按照式(3)計(jì)算樣本的相對(duì)距離δi;
步驟8:繪制決策圖ρi-δi,找到密度峰值標(biāo)記為類簇中心;
步驟9:將其余樣本分配給局部密度比自身大且離它距離最近樣本所在的類簇中;
步驟10:得到聚類結(jié)果C。
為了驗(yàn)證DPC-KP算法的有效性,本節(jié)分別在人工合成數(shù)據(jù)集和真實(shí)軌跡數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。在二維樣本點(diǎn)數(shù)據(jù)集上采用歐氏距離計(jì)算樣本間的距離度量,在證明算法有效后使用2.1 節(jié)提出的軌跡相似性度量對(duì)真實(shí)軌跡數(shù)據(jù)進(jìn)行聚類。參數(shù)p的選取范圍為[0.1%,0.5%,1%,2%,5%,6%]。本節(jié)通過合成數(shù)據(jù)實(shí)驗(yàn)證明算法的可行性。通過真實(shí)軌跡數(shù)據(jù)集實(shí)驗(yàn),證明DPC-KP 算法在軌跡數(shù)據(jù)上的有效性。
為了驗(yàn)證本文所提出的算法的有效性,實(shí)驗(yàn)選取12 個(gè)數(shù)據(jù)集其幾何形狀如圖5 所示。圖5(a)-圖5(e)展示的D1、D2、D3、D4 和D5 數(shù)據(jù)集中包含的簇都有不同程度的重疊。圖5(f)表示R15 數(shù)據(jù)集由分布不均的15 個(gè)簇組成,圖5(g)是由樣本點(diǎn)組成的交互曲線Spiral。圖5(h)-圖5(l)分別表示circles、jain、cth3、d6 和ls6 數(shù)據(jù)集。這些數(shù)據(jù)集均包含線型數(shù)據(jù)簇,更符合車輛行駛軌跡的形狀特征。

圖5 人工合成數(shù)據(jù)集可視化
D型5個(gè)數(shù)據(jù)集在空間分布上具有變化復(fù)雜性。數(shù)據(jù)集分別有2 000、3 100、1 000、3 783、2 000 個(gè)樣本點(diǎn),各數(shù)據(jù)集樣本點(diǎn)的重疊程度不同,如圖6 所示。DPC-KP 聚類算法對(duì)于有不同簇個(gè)數(shù)、不同形狀、不同重疊復(fù)雜性的數(shù)據(jù)集是有效的。
Spiral 是由312 個(gè)樣本點(diǎn)組成的螺旋數(shù)據(jù)集。R15 數(shù)據(jù)集包含了600 個(gè)樣本點(diǎn),由15 個(gè)簇組成。DPC-KP 在該數(shù)據(jù)集上對(duì)于參數(shù)p的選擇有很強(qiáng)的魯棒性。圖7 是這兩個(gè)數(shù)據(jù)集分別在DPC-KP算法下的聚類表現(xiàn)。作為對(duì)比,圖8 是在同樣數(shù)據(jù)集下DPC 算法的聚類結(jié)果。通過效果圖可以看出,所提出的算法通過改善局部密度的計(jì)算有效地解決了當(dāng)樣本簇間密度差別較大時(shí)產(chǎn)生的分配錯(cuò)誤。

圖7 DPC-KP算法在spiral和R15數(shù)據(jù)集上的效果圖

圖8 DPC算法在spiral和R15數(shù)據(jù)集上的效果圖
為了驗(yàn)證算法在車輛行駛軌跡數(shù)據(jù)上的有效性,測(cè)試了含有線型樣本簇的數(shù)據(jù)集。Circles 由3 個(gè)嵌套的橢圓組成,共含有3 603 個(gè)樣本點(diǎn)。Jains數(shù)據(jù)集有兩個(gè)“C”字型簇,由1 502 個(gè)樣本點(diǎn)組成。Cth3、d6 以及l(fā)s6 數(shù)據(jù)集分別含有1 146、1 400 和1 735個(gè)樣本點(diǎn),整體形狀均為線型簇中包含若干點(diǎn)簇。DPC-KP 算法在這些線型數(shù)據(jù)集上的聚類效果如圖9所示。從圖中看出,DPC-KP算法能夠識(shí)別出數(shù)據(jù)集中線型的簇并正確地完成聚類。

圖9 DPC-KP在circles、jains、cth3、d6和ls6數(shù)據(jù)集上的聚類表現(xiàn)
為了展現(xiàn)聚類的效果,本文選取經(jīng)典聚類算法k-Means 以 及DPC 進(jìn)行精度值(cluster accuracy,ACC)比較。ACC 屬于外部評(píng)價(jià),需要知道數(shù)據(jù)的真實(shí)聚類結(jié)果C'。ACC計(jì)算公式如下:
式中:i和i'分別指聚類結(jié)果C和C'中的簇類;k和k'則是簇類數(shù)。ACC值通過計(jì)算C和C'的匹配度量化聚類效果的好壞,該值越大,說明聚類效果越好。算法的比較結(jié)果如表1所示。

表1 不同聚類算法在數(shù)據(jù)集上的ACC值
可以看出在聚類常見的重疊數(shù)據(jù)集D1、D2、R15 時(shí)DPC-KP 算法效果與DPC 效果相近,均稍優(yōu)于k-Means 算法。而在面對(duì)含有線形數(shù)據(jù)簇的數(shù)據(jù)集時(shí),DPC-KP算法的聚類效果更好。
在上述人工合成數(shù)據(jù)集上的實(shí)驗(yàn)表明,所提出的DPC-KP 算法相較于DPC 算法在不同形狀、不同重疊程度的數(shù)據(jù)集上有更好的聚類效果。并且,該算法能夠很好地找到數(shù)據(jù)集中的線型簇,證明了該算法在軌跡聚類上的可行性。
為了驗(yàn)證DPC-KP 聚類算法在軌跡數(shù)據(jù)集上的效果,采用CVRR 軌跡數(shù)據(jù)集進(jìn)行聚類實(shí)驗(yàn)。選取其中真實(shí)的直行高速公路汽車軌跡數(shù)據(jù)集I5_SIM和十字路口數(shù)據(jù)集CROSS 進(jìn)行聚類,聚類效果如圖10所示。

圖10 DPC-KP在軌跡數(shù)據(jù)集上的聚類效果
I5_SIM 數(shù)據(jù)集展現(xiàn)的是雙向交通的4 車道公路汽車軌跡(共8條車道),包含800條軌跡數(shù)據(jù)。可以看出,本文提出的算法可以準(zhǔn)確地將軌跡數(shù)據(jù)按車道分成8 個(gè)簇。CROSS 數(shù)據(jù)集展現(xiàn)的是十字路口的汽車行駛軌跡信息,包含1 900條軌跡數(shù)據(jù)。算法將直行、轉(zhuǎn)向及掉頭軌跡都準(zhǔn)確地完成了聚類。利用軌跡簇中樣本的疏密,可以判斷某時(shí)間段軌跡流的特征,用于指導(dǎo)交通設(shè)計(jì)和智能汽車仿人駕駛研究。
為了使實(shí)驗(yàn)更加真實(shí)可靠,使用激光雷達(dá)采集了環(huán)島行駛汽車的軌跡數(shù)據(jù)進(jìn)行實(shí)驗(yàn)。數(shù)據(jù)集預(yù)處理后聚類效果如圖11所示。

圖11 環(huán)島數(shù)據(jù)集聚類效果圖
圖11 表明聚類得到的簇間差異大,聚類效果較好。同時(shí),注意到該環(huán)島南北向的車流量大于東西向車流量,這與采集時(shí)路況相符。但是,圖11 中仍存在不合理的噪聲軌跡數(shù)據(jù),需要進(jìn)一步識(shí)別處理。
本文提出了一種適合于汽車行駛軌跡數(shù)據(jù)的聚類算法DPC-KP,該算法引入k近鄰信息度量樣本密度,避免了DPC 算法度量局部密度的缺陷,改善了樣本分配時(shí)產(chǎn)生的連帶錯(cuò)誤。在軌跡數(shù)據(jù)特征維度高的情況下引入主成分分析,在預(yù)處理階段對(duì)軌跡數(shù)據(jù)進(jìn)行降維處理,方便找到軌跡數(shù)據(jù)中的主要特征變化。同時(shí),注意到大數(shù)據(jù)下的軌跡聚類只能呈現(xiàn)軌跡簇整體的性狀特征,只能從整體的角度分析交通流的相關(guān)特征。如要進(jìn)一步根據(jù)軌跡特征分析駕駛行為特征,尋找汽車駕駛共性,則需要進(jìn)一步找到代表性軌跡,全面考慮軌跡中體現(xiàn)出的駕駛信息。