基于密度的停留点识别方法
基于密度的停留點識別方法
李毓瑞, 陳紅梅, 王麗珍, 肖清
云南大學(xué)信息學(xué)院,云南 昆明 650091?
?
摘要:從GPS軌跡點序列中識別停留點,是軌跡分析的重要預(yù)處理步驟,是用戶行為分析、個性化興趣點推薦等位置服務(wù)的基礎(chǔ),停留點識別方法的識別能力對位置服務(wù)的可用性和可靠性有根本性的影響。針對現(xiàn)有方法未考慮軌跡點的時間連續(xù)性或僅考慮時間連續(xù)性的一個方向所導(dǎo)致的停留點識別能力不足的問題,提出一種新的基于密度的停留點識別方法。該方法考慮了軌跡點的時空聚集,兼顧了軌跡點的時間連續(xù)性和方向性。在GeoLife數(shù)據(jù)集上的實驗結(jié)果驗證了該方法的識別能力強于基準方法,可以進一步識別基準方法不能識別的兩類停留點。
關(guān)鍵詞:? ?停留點;密度 ; 時間連續(xù)性 ; 時間方向性
論文引用格式:
李毓瑞, 陳紅梅, 王麗珍, 肖清. 基于密度的停留點識別方法. 大數(shù)據(jù)[J], 2018, 4(5): 80-93
LI Y R,CHEN H M, WANG L Z, XIAO Q. Stay point identification based on density. Big Data Research[J], 2018, 4(5): 80-93
1 引言
隨著移動設(shè)備、移動互聯(lián)網(wǎng)等技術(shù)的發(fā)展,用戶、車輛等移動對象產(chǎn)生的GPS軌跡數(shù)據(jù)總量呈爆炸式增長。通過分析GPS軌跡數(shù)據(jù),人們可以發(fā)現(xiàn)移動對象的時空模式,進而提供基于位置的服務(wù),例如用戶行為分析、個性化興趣點推薦等。GPS軌跡數(shù)據(jù)的采樣頻率普遍較高,但其中的軌跡點并不是同等重要的,有些軌跡點僅僅是移動對象瞬時經(jīng)過的地方,例如用戶乘車經(jīng)過的公交站,而有些軌跡點集合代表了移動對象在某個地方停留了一段時間,即停留點,例如代表用戶在商場購物或在家中休息的軌跡點集合。停留點是移動對象在較小空間區(qū)域內(nèi)停留了較長時間的軌跡點集合。從GPS軌跡數(shù)據(jù)中識別停留點,可以有效去除GPS軌跡數(shù)據(jù)中不重要的和冗余的信息,而得到的停留點序列有助于對GPS軌跡序列的深入理解。因此停留點識別是軌跡數(shù)據(jù)分析的重要預(yù)處理步驟,是位置服務(wù)的基礎(chǔ)。
現(xiàn)有的停留點識別方法可以分為3類:基于聚類策略的方法、基于概率策略的方法和基于區(qū)分策略的方法。基于聚類策略的方法是對GPS軌跡數(shù)據(jù)進行時空聚類,包括僅考慮空間因素的方法(如DBSCAN)以及同時考慮時間因素的方法(如DJCluster和CB-SMoT)。基于概率策略的方法通過概率模型,從GPS軌跡數(shù)據(jù)中推導(dǎo)頻繁訪問的地點,這些概率模型包括高斯混合模型、貝葉斯模型、條件隨機場。基于區(qū)分策略的方法通過分析GPS軌跡點之間的時間和空間差異,尋找停留點及其代表點,其需要兩個閾值:限定移動對象停留區(qū)域大小的距離閾值和限定移動對象停留時間長度的時間閾值。在這3類方法中,基于聚類策略的方法主要考慮軌跡點的時空鄰近,基于概率策略的方法主要考慮軌跡點的訪問頻率,它們都沒有考慮軌跡點的時間連續(xù)性和方向性。而基于區(qū)分策略的方法僅考慮了時間連續(xù)性的一個方向,沒有考慮停留點中軌跡點的時空聚集。
為了更好地識別停留點,有必要考慮軌跡點的時間連續(xù)性和方向性以及時空聚集。如果不考慮軌跡點的時間連續(xù)性,可能會得到一些無意義的停留點。如圖1所示,用戶在上班、購物、回家途中多次但不連續(xù)經(jīng)過虛線所圈的路口,深色軌跡點之間的距離滿足距離閾值且它們的累計時間滿足時間閾值。如果不考慮時間連續(xù)性,它們會被判定為停留點,但是它們并不代表用戶的停留行為。
圖1?不考慮時間連續(xù)性下的停留點
如果僅考慮時間連續(xù)性的一個方向,可能會漏掉一些有意義的停留點。如圖2所示,由5個軌跡點組成的軌跡點序列分布在較小的空間區(qū)域內(nèi)且時間跨度較大,從而構(gòu)成一個停留點,其中,軌跡點p1到p2的距離大于距離閾值,但軌跡點p3到其他點的距離都小于距離閾值,并且p1到p5的時間跨度大于時間閾值,但p2到p5的時間跨度小于時間閾值。若僅考慮向前這個方向,由于p1到p2的距離大于距離閾值,而p2到p5的時間跨度不滿足時間閾值,因此不能識別這個停留點。但是,若以p3為錨點,考慮向前和向后兩個方向,即可識別這個停留點。
圖2?考慮時間方向性后的停留點
基于上述討論,本文提出一種新的基于區(qū)分策略的方法:基于密度的停留點識別(stay point identification based on density,SPID)方法。本文主要貢獻如下。
● 考慮了軌跡點的時空聚集,即計算軌跡點的密度區(qū)間及密度,生成候選集。根據(jù)密度,迭代地在候選集中進行識別、更新操作,得到停留點集。
● 兼顧了軌跡點的時間連續(xù)性和方向性,即在計算軌跡點的密度區(qū)間及密度時,沿時間維從向后和向前兩個方向,搜索時間連續(xù)且滿足距離閾值的軌跡點。
● 設(shè)計了有效的基于密度的停留點識別方法,并通過在GeoLife數(shù)據(jù)集上的實驗,驗證了該方法的識別能力優(yōu)于基準方法,可以進一步識別基準方法不能識別的兩類停留點。
2 相關(guān)工作
現(xiàn)有的停留點識別方法可以分為3類:基于聚類策略的方法、基于概率策略的方法和基于區(qū)分策略的方法。本節(jié)將分別對這3類方法進行介紹。
2.1 基于聚類策略的方法
基于聚類策略的方法設(shè)計距離度量,采用聚類算法,聚類軌跡點為停留點,包括僅考慮空間因素的方法和同時考慮時空因素的方法。Ashbrook D等人采用K-means聚類算法識別停留點;Toyama N等人分析了聚類半徑對停留點識別結(jié)果的影響;Zhou C Q等人基于DBSCAN聚類算法提出停留點識別方法DJ-Cluster;Palma A T等人在DBSCAN算法中引入時間因素,提出識別方法CB-SmoT;Zimmermann M等人引入時間因素提升OPTICS聚類算法在停留點識別中的效果;Cao X等人針對汽車軌跡數(shù)據(jù),采用OPTICS(ordering points to identify the clustering structure)算法和K-means算法識別停留點。
2.2 基于概率策略的方法
基于概率策略的方法建立概率模型,從GPS軌跡數(shù)據(jù)中推導(dǎo)頻繁訪問的地點。Zhang K S等人使用高斯混合模型,提出一種停留點在線學(xué)習(xí)算法。Liao L等人提出了一種基于條件隨機場的停留點識別算法。Nurmi P等人提出了一種基于狄利克雷過程的非參數(shù)停留點識別方法。
2.3 基于區(qū)分策略的方法
基于區(qū)分策略的方法通過分析軌跡點在時間和空間上的差異,識別停留點及其代表點。Hariharan R等人從錨點出發(fā),沿時間維向前選擇滿足時間閾值的子軌跡,然后根據(jù)距離閾值判斷子軌跡是否構(gòu)成一個停留點,并將停留點中到其他軌跡點的最大距離最小化的軌跡點作為代表點。Li Q N等人從錨點出發(fā),沿時間維向前選擇滿足距離閾值的子軌跡,然后根據(jù)時間閾值判斷子軌跡是否構(gòu)成了一個停留點,并采用停留點中軌跡點的平均位置點作為代表點。Liu J H等人和PérezTorres R等人分別采用Hariharan方法和Li Q N等人的方法預(yù)處理軌跡點序列,從中提取停留點。Pavan M等人在Li Q N等人的方法的基礎(chǔ)上考慮了速度。
與上述方法不同,本文提出一種新的基于區(qū)分策略的方法——基于密度的停留點識別方法,該方法考慮了軌跡點的時空聚集,兼顧了軌跡點的時間連續(xù)性和方向性。
3 相關(guān)概念及問題描述
如圖3所示,GPS軌跡點p(<latitude,longitude>,time)表示移動對象在時間time位于坐標<latitude,longitude>的位置,p.time表示軌跡點p的時間, p.longtitude表示經(jīng)度,p.latitude表示緯度。將移動對象的軌跡點按時間有序連接,即得到移動對象的軌跡點序列Traj=p1→p2→p3?pn?1→pn n。
圖3?GPS軌跡點、軌跡點序列和停留點
定義1 軌跡點的密度區(qū)間
給定GPS軌跡點序列Traj,其中,任意軌跡點pa的密度區(qū)間pa.interval=[pas,pae]是滿足下列條件的連續(xù)子序列:
● ?pi∈pa.interval,d(pa,pi)≤dth;
●d(pa,p as-1)>dth,且d(pa,p ae+1)>dth。
其中,pas和pae分別表示密度區(qū)間的起點和終點,dth是距離閾值,d(?)是距離函數(shù),本文采用的是球面距離。
定義2 軌跡點的密度
給定軌跡點pa的密度區(qū)間pa.interval=[p as,p ae],pa的密度pa.density定義為其密度區(qū)間中的軌跡點數(shù)目,即:
pa.density=ae?as+1??????(1)
定義3 軌跡點的時間跨度
給定軌跡點pa的密度區(qū)間pa.interval=[pas,pae],pa的時間跨度pa.timespan定義為其密度區(qū)間起點與終點的時間差,即:
pa.timespan=pae.time?pas.time??????(2)
事實上,軌跡點的密度是移動對象在以此點為中心、距離閾值為半徑的區(qū)域內(nèi)的軌跡點數(shù)目。在軌跡點采樣頻率一定的情況下,軌跡點密度越大,移動對象在該區(qū)域停留的時間越長。
定義4 停留點
給定GPS軌跡點序列Traj、距離閾值dth和時間閾值tth,停留點sp=[ps,pe]是滿足以下條件的連續(xù)子序列:
● ?pi,pj∈sp,d(pi,pj)≤2 dth;
● pe.time-ps.time≥tth。
例如,在圖3中,如果連續(xù)軌跡點子序列[p5,p8]=p5→p6→p7→p8滿足定義4的停留點條件,即其中任意兩個軌跡點的距離小于或等于2dth,起點p5和終點p8的時間差大于或等于tth,則連續(xù)子序列[p5,p8]為一個停留點。
給定GPS軌跡點序列Traj、距離閾值dth和時間閾值tth,停留點識別的基本任務(wù)就是從Traj中找出盡可能多的、互不相交的、滿足定義4條件的停留點。
4? 基于密度的停留點識別方法
本文所提的基于密度的停留點識別方 法的處理框架如圖4所示,主要包括兩個 步驟:密度計算和停留點識別。
圖4?算法框架
4.1 密度計算
4.1.1 算法思想
在密度計算步驟中,依次以GPS軌跡點序列Traj中的每個軌跡點pa為錨點,根據(jù)距離閾值d th,沿時間維向后搜索和向前搜索,得到pa的密度區(qū)間pa.interval =[pas,pae],基于密度區(qū)間計算pa的密度pa.density=ae-as+1和時間跨度pa.timespan = pae.time-pas.time,然后根據(jù)時間閾值,生成候選停留點列表。
(1)后向搜索
后向搜索是以軌跡點pa為錨點,沿時間維向后搜索與pa的距離小于或等于距離閾值dth的在時間上連續(xù)的所有軌跡點,直至最后一個滿足條件的軌跡點pas,即搜索滿足下列條件的軌跡點pi:
● 0≤as≤i<a;
● ?i,as≤i<a,d(pa,pi)≤dth;
●如果0≤as-1,則d(pa,p as-1)>dth。
因此,后向搜索過程是從錨點pa出發(fā),沿時間維重復(fù)如下步驟(初始j=1):
① 向后搜索一個軌跡點pi=pa-j,判斷pa-j是否已經(jīng)超過GPS軌跡點序列Traj的起點,即判斷a-j是否小于0,若是,則最后一個滿足條件的軌跡點p as=pa-j+1=p 0,后向搜索過程停止,否則執(zhí)行第②步。
② 判斷pa-j與錨點pa的距離是否大于距離閾值dth,即判斷d(pa,pa-j)是否大于dth,若是,則最后一個滿足條件的軌跡點pas=pa-j+1,后向搜索過程停止,否則執(zhí)行第③步。
③ j=j+1,轉(zhuǎn)第①步,繼續(xù)搜索。
(2)前向搜索
前向搜索是以軌跡點pa為錨點,沿時間維向前搜索與pa的距離小于或等于距離閾值dth的在時間上連續(xù)的所有軌跡點,直至最后一個滿足條件的軌跡點pae,即搜索滿足下列條件的軌跡點pi:
● a<i≤ae≤|Traj|-1;
● ?i,a<i≤ae,d(pa,pi)≤dth;
●如果ae+1≤|Traj|-1,則d(pa,pae+1)>dth。
因此,前向搜索過程是從錨點pa出發(fā),沿時間維重復(fù)如下步驟(初始j=1):
① 向前搜索一個軌跡點pi=pa+j,判斷pa+j是否已經(jīng)超過GPS軌跡點序列Traj的終點,即判斷a+j是否大于|Traj|-1,若是,則最后一個滿足條件的軌跡點p ae=pa+j-1=p|Traj|-1,前向搜索過程停止,否則執(zhí)行第②步。
② 判斷pa+j與錨點pa的距離是否大于距離閾值dth,即判斷d(pa,pa+j)是否大于d th,若是,則最后一個滿足條件的軌跡點pae=pa+j-1,后向搜索過程停止,否則執(zhí)行第③步。
③ j=j+1,轉(zhuǎn)第①步,繼續(xù)搜索。
(3)密度計算及候選生成
通過后向搜索和前向搜索,所有介于p as和p ae之間的軌跡點pi(as≤i≤ae)即構(gòu)成了錨點pa的密度區(qū)間pa.interval =[pas,p ae],利用式(1)和式(2)即可計算pa的密度pa.density和時間跨度pa.timespan。
如果錨點pa的時間跨度小于時間閾值,即如果pa.timespan<tth,則pa的密度區(qū)間pa.interval =[pas,pae]不可能是一個停留點,可以直接剪枝,否則pa.interval=[p as,p ae]是一個候選停留點,將pa及pa.interval =[pas,pae]放入按密度降序排列的候選列表CL中,即CL={(pu,[p us,p ue]),…,(pv,[p vs,p ve])}滿足下列條件:
● ? (pa,[pas,pae])∈CL,pa.timespan≥tth;
●pu.density≥…≥pv.density。
在之后的停留點識別步驟中,將從候選列表CL中按密度從大到小的順序識別停留點。
4.1.2 算法描述
密度計算Computing-Density的算法描述如算法1所示。
算法1:密度計算Computing-Density。
輸入:GPS軌跡點序列Traj,距離閾值dth,時間閾值tth。
輸出:候選停留點列表CL。
步驟:
1.for?each pa∈Traj
2.pas:= backwardSearching(pa,dth);
3.pae:= forwardSearching(pa,dth);
4.pa.interval :=[pas,pae];
5.pa.density := ae-as+1;
6.pa.timespan := pae.time-pas.time;
7.If pa.timespan ≥ tth then
8.CL.SortInsert(pa,[pas,pae]);
9.end?for
10.return CL
在算法1中,backwardSearching(pa,dth)和forwardSearching(pa,dth)實現(xiàn)前向搜索和后向搜索,CL.SortInsert(pa,[pas,pae])將候選停留點按密度降序插入候選列表CL中。
設(shè)GPS軌跡點序列的長度為n,軌跡點密度區(qū)間的平均長度為l。在算法1中,前向搜索和后向搜索的時間復(fù)雜性為O(n?l),密度計算及候選生成的主要開銷是候選列表的排序,時間復(fù)雜性為O(nlbn),通常l<<n,因此算法1的時間復(fù)雜性為O(nlbn)。
4.2 停留點識別
4.2.1 算法思想
候選列表CL中的候選停留點已經(jīng)滿足距離閾值和時間閾值,但是這些候選停留點的密度區(qū)間可能重疊,因此在停留點識別步驟中,將基于CL按密度從大到小迭代地進行識別更新操作,得到不相交的停留點,直至CL為空。
(1)停留點識別及候選更新
因為候選列表CL中的候選停留點已按密度降序排列,所以停留點識別及候選更新過程如下。
① 從CL中選取當(dāng)前密度值最大的候選停留點,即選取CL中的第一個候選停留點pu=[pus,pue],作為停留點sp=[pus,p ue]。
② 根據(jù)當(dāng)前停留點sp=[pus,pue],對于所有介于起點pus和終點pue之間的軌跡點pi,如果pi及其密度區(qū)間pi.interval =[pis,p ie]在CL中,則將(pi,[p is,p ie])從CL中刪除。
(2)軌跡點更新及候選更新
當(dāng)前停留點sp=[pus,pue]識別之后,還需更新所有受其影響的軌跡點的密度區(qū)間,進而還需再次更新候選列表CL,更新過程如下。
① 對于CL中每個候選停留點pi=[p is,pie],如果其與停留點sp =[pus,pue]相交,則縮小pi的密度區(qū)間pi.interval =[p is,pie],即如果pus≤pie≤pue,則ie=us-1;如果pus≤pis≤pue,則is=ue+1。
② 對于CL中每個縮小的候選停留點pi=[pis,pie],根據(jù)式(1)和式(2),重新計算其密度pi.density和時間跨度pi.timespan,如果其時間跨度小于時間閾值,即如果pi.timespan<tth,則pi=[p is,p ie]不再是一個候選停留點,可以剪枝,將(pi,[p as,p ae])從CL中刪除;否則按其密度pi.density調(diào)整在CL中的位置。
4.2.2 算法描述
停留點識別Identifying-Staypoint的算法描述如算法2所示。
算法2:停留點識別IdentifyingStaypoint。
輸入:候選停留點列表CL,時間閾值tth。
輸出:停留點集合SP。
步驟:
1.while CL!=? do
2.sp := CL[0].[pus,pue];
3.UpdatingOne(sp,CL);
4.UpdatingTwo(sp,CL,tth);
5.SP.insert(sp);
6.end?while
7.return SP
在算法2中,UpdatingOne(sp,CL)根據(jù)當(dāng)前停留點,完成候選列表的第一次刪除更新。UpdatingTwo(sp,CL,tth)根據(jù)當(dāng)前停留點和時間閾值,縮小受影響軌跡點的密度區(qū)間,完成候選列表的第二次刪除更新以及排序。SP.insert(sp)將當(dāng)前停留點插入停留點集合。
設(shè)候選列表中初始候選停留點數(shù)目為m,候選列表更新次數(shù)為k。在算法2中,候選列表每次更新的時間復(fù)雜性為O(m2),每次排序的時間復(fù)雜性為O(mlbm),因此算法2的時間復(fù)雜性為O(km2)。
4.3 討論
本文所提的基于密度的停留點識別方法是一種基于區(qū)分策略的方法,這類方法找到的停留點滿足定義4的條件,即這類方法找到的停留點是正確的。但是這類方法不能保證找到所有的停留點,即這類方法是不完備的。
定理1 基于密度的停留點識別方法找到的停留點是正確的。
證明:(1)SPID方法找到的每個sp都是某個軌跡點pa的密度區(qū)間pa.interval =[pas,pae]
∵ ?pi∈pa.interval=[pas.pae]d(pa,pi)≤dt
∴ ?pi,pj∈pa.interval=[pas.pae]d(pi,pj)≤2 dth
即sp滿足定義4中的條件1。
(2)SPID方法找到的每個sp都是從候選列表CL中選取的,而CL的初始生成以及迭代更新都對每個候選進行了時間閾值測試,使 ?(pa,[pas,pae])∈CL,|pae.timepas.time|≥tth成立。即sp滿足定義4中的條件2。
5 實驗與分析
5.1 實驗設(shè)計
基于區(qū)分策略的停留點識別方法能保證找到的停留點是正確的,但是不能保證找到所有的停留點,因此設(shè)計了如下實驗。
(1)實驗?zāi)康?/p>
驗證基于密度的停留點識別方法能否找到更多的停留點。
(2)數(shù)據(jù)集
實驗采用的數(shù)據(jù)集是來自微軟亞洲研究院的GeoLife數(shù)據(jù)集。數(shù)據(jù)集采集了182名用戶從2007年4月份到2012年8月份的GPS軌跡,軌跡數(shù)目共計17 621條,軌跡長度共計1 292 951 km,軌跡持續(xù)時間共計20 176 h。這些軌跡數(shù)據(jù)由不同GPS設(shè)備在不同采樣頻率下采集,91.5%的軌跡數(shù)據(jù)是在較高采樣頻率下采集的。
(3)對比方法
實驗選取的對比方法是參考文獻提出的兩個方法,分別以作者姓氏命名為Li方法和Pavan方法。Li方法的基本思想是:首先以GPS軌跡點序列的起始點為錨點,沿時間維向前選擇滿足距離閾值的子軌跡,根據(jù)時間閾值判斷子軌跡是否構(gòu)成一個停留點。若是,則以子軌跡后面的軌跡點為新錨點;否則以錨點后面的軌跡點為新錨點,然后重復(fù)上述過程,直至整個軌跡點序列遍歷完成。Li方法是現(xiàn)有基于區(qū)分策略方法中表現(xiàn)最優(yōu)的方法。但是Li方法僅考慮了時間連續(xù)的一個方向。Pavan方法在判斷子軌跡是否構(gòu)成停留點中增加了速度閾值的限定,以排除無意義的停留點。
5.2 實驗結(jié)果
首先,對比了3種方法中距離閾值和時間閾值對停留點個數(shù)的影響;然后,進一步分析了3種方法識別的停留點的差異。
5.2.1 閾值對于停留點個數(shù)的影響
實驗對比了3種方法在不同距離閾值和時間閾值下的停留點個數(shù)。圖5(a)顯示了時間閾值tth=1 800 s時,距離閾值對停留點個數(shù)的影響,圖5(b)顯示了距離閾值dth=200 m時,時間閾值對停留點個數(shù)的影響。tth=1 800 s和dth=200 m是Li方法的最優(yōu)閾值。Pavan方法的結(jié)果均是在速度閾值為2 m/s的情況下得到的。
如圖5(a)所示,在絕大多數(shù)距離閾值情況下,SPID識別的停留點個數(shù)比對比方法多。當(dāng)距離閾值小于1250m時,SPID和對比方法的停留點個數(shù)變化趨勢都是隨著距離閾值的增加而增加的。在距離閾值超過1 250 m之后,對比方法識別的停留點個數(shù)變化呈現(xiàn)隨著距離閾值的增加而迅速下降的趨勢,而SPID方法則保持穩(wěn)定。對比方法識別的停留點個數(shù)下降的原因是較大的距離閾值使每次選擇的子軌跡變長,并且不斷地對后續(xù)的子軌跡選擇產(chǎn)生影響,這種影響的累積使得一些空間和時間上鄰近的停留點被合并。而SPID方法由于從當(dāng)前密度最大的候選開始,迭代地進行識別、更新,避免了這種合并。
圖5?閾值對于停留點個數(shù)的影響
如圖5(b)所示,在絕大多數(shù)時間閾值情況下,SPID方法和Li方法識別的停留點個數(shù)比較接近。SPID方法和對比方法識別的停留點個數(shù)都隨著時間閾值的增長而下降。當(dāng)時間閾值超過21 600 s(6 h)時,識別的停留點個數(shù)接近于0,這是因為停留時間超過6 h是很少見的。
從圖5還可以看出,在大多數(shù)閾值情況下,Pavan方法識別的停留點個數(shù)少于Li方法,這是因為其在識別過程中需要滿足對于速度閾值的限定,因此它過濾了不滿足速度閾值限定的停留點,比如用戶在公園里跑步時形成的不滿足速度閾值限定的停留點或者用戶在景點內(nèi)乘坐游覽車觀光時形成的不滿足速度閾值限定的停留點。速度閾值使得算法識別出的停留點更加規(guī)整,但被速度閾值過濾掉的停留點依然對研究用戶行為有參考價值。
5.2.2 不同方法的停留點比較
本節(jié)分析SPID方法能識別但對比方法不能識別的兩類停留點。
第一類停留點如圖6所示,在GPS軌跡中出現(xiàn)了“跳躍”。從圖6(a)所示的GPS子軌跡可以看出,軌跡點3095到軌跡點3096的時間跨度遠大于相鄰軌跡點之間的時間跨度。從圖6(b)所示的軌跡點相對位置可以看出,軌跡點3095到軌跡點3096的距離也遠大于相鄰軌跡點之間的距離。產(chǎn)生這種情形的原因可能是用戶從一個門進入高樓或者地下建筑物,然后從另一個門出去,高樓和地下建筑物屏蔽了信號,使得這段軌跡產(chǎn)生了“跳躍”。在對比方法中,軌跡點3093、軌跡點3094和軌跡點3095會被依次選為錨點,由于它們與軌跡點3096的距離超過距離閾值,對比方法不能識別這個包含“跳躍”的停留點。而在SPID中,軌跡點3101會被選為錨點,并從兩個方向搜索,由于它與軌跡點3095和軌跡點3096的距離都小于距離閾值,從而可以識別這個包含“跳躍”的停留點。
圖6?包含“跳躍”的停留點
第二類停留點如圖7所示,在GPS軌跡中出現(xiàn)了“暫時離開”。圖7(a)為SPID識別的停留點,圖7(b)和圖7(c)分別為對比方法識別的兩個停留點。事實上,圖7(a)的子軌跡是圖7(b)和圖7(c)子軌跡的連接。從圖7(a)可以看出,對比方法識別的停留點1的終點和停留點2的起點都與停留區(qū)域的中心相距較遠,出現(xiàn)了“暫時離開”。在對比方法中,“暫時離開”使一個時間跨度較長的停留點被識別成兩個在空間上重合、時間跨度較短的停留點。而在SPID中,由于從前向和后向兩個方向搜索密度區(qū)間,并根據(jù)密度大小識別停留點,從而可以識別這種包括“暫時離開”的停留點。
圖7?包含“暫時離開”的停留點
5.2.3 示例
某用戶的一段GPS軌跡點序列Traj見表1,距離閾值dth=100 m,時間閾值tth=300 s。
(1)密度計算
以軌跡點p220為例,展示后向搜索、前向搜索、密度計算及候選列表生成的過程。
● 后向搜索:初始j=1,因為a?j=220?1=219>0,d(p220,p219)=2.469<dth=100,未達到停止條件,所以j:=j+1=2;重復(fù)此過程,直到j(luò)=11,因為a?j=220?11=209>0,d(p220,p209)=105.993>dth=100,達到停止條件,所以后向搜索過程結(jié)束,軌跡點pas=p210作為錨點p220密度區(qū)間的起點。
● 前向搜索:初始j=1,因 為a+j=221<|Traj|?1=409,d(p220,p221)=1.357<dth=100,未達到停止條件,所以j:=j+1=2;重復(fù)此過程,直到j(luò)=38,因為a+j=220+38= 258<|Traj|?1=409,d(p220,p258)=102.781>dth=100,達到停止條件,所以前向搜索過程結(jié)束,軌跡點pae=p257作為錨點p220密度區(qū)間的終點。
● 密度計算:密度值p220.density=257?210+1=48,時間跨度p220.timespan=pae.time- pas.time=3 002。
● 候選列表生成:由于p220.timespan=3 002>tth=300,錨點及其密度區(qū)間(p220,[p210,p257])構(gòu)成一個候選停留點,將(p220,[p210,p257])按其密度值插入候選列表CL中的適當(dāng)位置。至此,錨點p220的密度計算過程結(jié)束。
當(dāng)對GPS軌跡點序列Traj中的所有軌跡點都計算密度后,可以得到按密度降序排列的初始候選列表CL,見表2。
(2)停留點識別
對候選列表CL中的每個候選停留點進行停留點識別、軌跡點更新。以第一個候選停留點(p220,[p210,p257])為例,展示停留點識別及候選列表更新、軌跡點更新及候選列表更新的過程。
停留點識別及候選列表更新:當(dāng)前候選列表CL中的第一個候選停留點(p220,<p210,p257>)已經(jīng)滿足停留點的條件,故構(gòu)成了一個停留點sp=(p220,<39.991 304,116.332 948>,[2009-05-18 08:29:09,2009-05-18 09:19:11],[210,257])。依次判定介于起點pus=p210和終點pue=p257之間的軌跡點,將出現(xiàn)在候選列表CL中的候選軌跡點p220、p221、p224、p223、p222、p225、p242、p241、p240、p238、p239、p237、p236、p235、p234、p233、p229、p227、p232、p231、p228、p230、p226及其密度區(qū)間從CL中刪除。
軌跡點更新及候選列表更新:當(dāng)前候選列表CL中沒有候選軌跡點的鄰域與p220的密度區(qū)間[210,257]相交,故CL中的候選軌跡點及其密度區(qū)間不需更新,CL也不需要更新。在對候選停留點(p220,[p210,p257])進行判定之后,候選列表CL更新后的結(jié)果見表3。
在經(jīng)過3次迭代之后,候選列表CL變?yōu)榭?#xff0c;其中,大部分候選停留點由于與停留點相交,被更新策略刪除了。最終得到的停留點集合見表4。
6 結(jié)束語
本文在考慮軌跡點時空聚集的同時,考慮了軌跡點的時間連續(xù)性和方向性,提出了一種新的基于密度的識別停留點方法。首先,以錨點為中心,沿時間維從向后和向前兩個方向搜索時間連續(xù)且滿足距離閾值的軌跡點,形成錨點的密度區(qū)間;然后,根據(jù)時間閾值生成候選集,再根據(jù)密度迭代地在候選集中進行識別、更新操作,得到停留點集;最后,設(shè)計有效的算法,并通過實驗驗證了新方法是有效的,可以識別基準方法不能識別的兩類停留點。在未來的工作中,將進一步研究停留點的語義標注以及基于具有語義的停留點研究位置服務(wù)。
The authors have declared that no competing interests exist.?
作者已聲明無競爭性利益關(guān)系。?
作者簡介
李毓瑞(1989-),男,云南大學(xué)信息學(xué)院碩士生,主要研究方向為空間數(shù)據(jù)挖掘。
陳紅梅(1976-),女,博士,云南大學(xué)信息學(xué)院副教授,主要研究方向為數(shù)據(jù)挖掘、空間數(shù)據(jù)挖掘等。
王麗珍(1962-),女,博士,云南大學(xué)信息學(xué)院教授,博士生導(dǎo)師,主要研究方向為數(shù)據(jù)庫、數(shù)據(jù)挖掘、計算機 算法等。
肖清(1975-),女,云南大學(xué)信息學(xué)院講師,主要研究方向為數(shù)據(jù)挖掘、空間數(shù)據(jù)挖掘等。
《大數(shù)據(jù)》期刊
《大數(shù)據(jù)(Big Data Research,BDR)》雙月刊是由中華人民共和國工業(yè)和信息化部主管,人民郵電出版社主辦,中國計算機學(xué)會大數(shù)據(jù)專家委員會學(xué)術(shù)指導(dǎo),北京信通傳媒有限責(zé)任公司出版的中文科技核心期刊。
關(guān)注《大數(shù)據(jù)》期刊微信公眾號,獲取更多內(nèi)容
往期文章回顧
專題導(dǎo)讀:大數(shù)據(jù)創(chuàng)新實踐
基于公開數(shù)據(jù)的特殊人群在線活動特征挖掘
基于社會化大數(shù)據(jù)的音樂文化研究進展
結(jié)合深度學(xué)習(xí)的工業(yè)大數(shù)據(jù)應(yīng)用研究
冒煙指數(shù):大數(shù)據(jù)監(jiān)測互聯(lián)網(wǎng)金融風(fēng)險
工業(yè)大數(shù)據(jù)分析綜述:模型與算法
總結(jié)
以上是生活随笔為你收集整理的基于密度的停留点识别方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 作者:程致远(1991-),男,东北大学
- 下一篇: bash-shell高级编程--条件判断