亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于QuickBundles算法的軌跡聚類方法

        2022-04-12 05:13:21劉峰
        計(jì)算機(jī)時(shí)代 2022年4期
        關(guān)鍵詞:可視化聚類應(yīng)用

        劉峰

        摘? 要: 隨著衛(wèi)星定位傳感器的普及應(yīng)用,形成了海量移動(dòng)對(duì)象的軌跡數(shù)據(jù)。軌跡數(shù)據(jù)含有豐富的時(shí)空特征信息,通過對(duì)相關(guān)數(shù)據(jù)聚類處理,可以挖掘出移動(dòng)對(duì)象的活動(dòng)場(chǎng)景、位置等屬性信息。通過借鑒神經(jīng)成像學(xué)領(lǐng)域中的QuickBundles算法,介紹算法原理和實(shí)現(xiàn),并基于此算法實(shí)現(xiàn)了一種軌跡聚類方法,通過使用實(shí)際GPS數(shù)據(jù)對(duì)此方法進(jìn)行驗(yàn)證,從對(duì)聚類結(jié)果的可視化展示表明,本方法能夠有效挖掘原始數(shù)據(jù),完成對(duì)軌跡數(shù)據(jù)的聚類。

        關(guān)鍵詞: 軌跡數(shù)據(jù)挖掘; 聚類; 可視化; 應(yīng)用

        中圖分類號(hào):TP311.1? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):1006-8228(2022)04-43-04

        Trajectory clustering method based on QuickBundles algorithm

        Liu Feng

        (Jiangsu Automation Research Institute, Lianyungang, Jiangsu 222002, China)

        Abstract: With the popularization of satellite positioning sensors, a large number of trajectory data of moving objects have been formed. The trajectory data contains rich spatio-temporal feature information. By clustering the relevant data, the attribute information such as activity scene and location of moving objects can be mined. By referring to the QuickBundles algorithm in the field of neuroimaging, the principle and implementation of the algorithm are introduced, and a trajectory clustering method is implemented based on this algorithm. This method is verified by using the actual GPS data. Through the visual display of the clustering results, this method can effectively mine the original data and complete the clustering of trajectory data.

        Key words: trajectory data mining; clustering; visualization; application

        0 引言

        在互聯(lián)網(wǎng)高速發(fā)展的今天,無時(shí)無刻不在產(chǎn)生軌跡數(shù)據(jù),海量的軌跡數(shù)據(jù)具有很大的研究?jī)r(jià)值,通過對(duì)于軌跡數(shù)據(jù)的聚類分析,能夠?yàn)榻煌肪€優(yōu)化、船舶AIS導(dǎo)航[3]、路網(wǎng)預(yù)測(cè)[6]等提供很好的解決方案。

        經(jīng)典的軌跡聚類算法有基于中心搜索的K-Means算法、基于密度的DBSCAN算法[2]以及基于層次的BIRCH算法等[8],但是K-Means算法中需要選擇起始中心點(diǎn)和聚類的個(gè)數(shù),并且不同的中心點(diǎn)的選取對(duì)最后的結(jié)果影響很大,而DBSCAN算法對(duì)均勻密度的樣本效果很好,但是對(duì)線性樣本則效果不佳。

        大多數(shù)的聚類算法的時(shí)間復(fù)雜度為O(N2),其中N是需要進(jìn)行聚類的軌跡數(shù)量,而本文則借鑒神經(jīng)成像學(xué)領(lǐng)域中,用于對(duì)磁共振成像中得到的白質(zhì)纖維進(jìn)行聚類所采用的QuickBundles算法[1],把需要進(jìn)行聚類的軌跡視為蛋白質(zhì)纖維,然后在同一個(gè)聚類中合并相似度高的軌跡。

        1 QuickBundles算法簡(jiǎn)介

        QuickBundles是一種非常的簡(jiǎn)單和快速的算法,它可以在線性時(shí)間內(nèi)將N條軌跡進(jìn)行聚類。在QB算法中,每個(gè)軌跡都被定義成固定長(zhǎng)度的有序點(diǎn)序列,使用比較函數(shù)和合并來進(jìn)行軌跡聚類。通過計(jì)算此條軌跡與當(dāng)前存在的軌跡集群之間的距離,來判單是否需要將這條軌跡加入此集群,同時(shí)軌跡集群保存在一個(gè)根據(jù)需要擴(kuò)展的列表中。與其他聚類算法不同,如k-Means或BIRCH,QB中沒有重新分配或更新階段,一旦一條軌跡被分配到一個(gè)集群,它就停留在那里,并且集群不會(huì)合并,QB的速度和效率正是源于這個(gè)思想。

        1.1 軌跡距離度量

        軌跡距離度量是整個(gè)軌跡聚類的基礎(chǔ),這里我們使用了一個(gè)相當(dāng)簡(jiǎn)單的對(duì)稱距離函數(shù),簡(jiǎn)稱為最小平均直接翻轉(zhuǎn)距離(MDF),我們定義軌跡S=[S1,S2,…,SK]等價(jià)于兩條有序折線:S =[S1,S2,…,SK]和它的翻轉(zhuǎn)版本SF=(SK, SK?1,…,S1),在這種表示法下,直接距離、翻轉(zhuǎn)距離和MDF距離計(jì)算方式如下:

        |x?y|表示兩個(gè)經(jīng)緯度點(diǎn)x和y之間的距離,直接距離d(s,t)是指兩條軌跡s和t對(duì)應(yīng)點(diǎn)之間距離的均值。

        不過只有當(dāng)兩條軌跡具有相同的軌跡點(diǎn)數(shù)量時(shí),才可以使用MDF距離進(jìn)行計(jì)算。使用MD來計(jì)算兩點(diǎn)軌跡之間距離時(shí),需要先通過簡(jiǎn)單的線性插值算法,使得任意兩條軌跡具有相同的數(shù)量軌跡點(diǎn),并且使得每條軌跡的所有段具有相等的長(zhǎng)度。

        因此對(duì)于包含K個(gè)點(diǎn)的兩條軌跡,MDF距離只需要進(jìn)行2K點(diǎn)的距離計(jì)算。MDF距離是對(duì)兩條軌跡的相似度進(jìn)行空間上的度量,顯然MDF距離是非負(fù)的,并且當(dāng)且僅當(dāng)兩條軌跡相同且對(duì)稱時(shí),計(jì)算的MDF距離為零。

        MDF距離的主要優(yōu)點(diǎn)是計(jì)算效率高,通過對(duì)兩條軌跡的直接距離和翻轉(zhuǎn)距離的計(jì)算,來對(duì)軌跡的相似度進(jìn)行度量,可以非常輕松地解決從最簡(jiǎn)單的平行軌跡到最復(fù)雜的發(fā)散軌跡的情況。

        1.2 算法實(shí)現(xiàn)

        QB算法在聚類節(jié)點(diǎn)中存儲(chǔ)關(guān)于軌跡聚類的信息,我們將軌跡從1到N進(jìn)行編號(hào),其中Si是代表第i條軌跡。聚類節(jié)點(diǎn)被定義為三元組c=(I,h,n),其中I是整數(shù)索引i=1到N的列表,n為該聚類中的軌跡數(shù)量,h為軌跡距離和。h是一個(gè)K×3矩陣,當(dāng)一條軌跡被添加到一個(gè)聚類時(shí),它可以在線更新,并且等于:

        在算法的任何一步,我們都有M個(gè)clusters(集合)。選擇第一條軌跡S1并將其放在第一個(gè)clusters,C1←({1},S1,1);此時(shí)M=1,對(duì)于每個(gè)剩余的軌跡,依次i=2,…,N:

        i. 計(jì)算軌跡 Si與所有當(dāng)前聚類 Ce 的質(zhì)心軌跡Ve之間的MDF距離,其中e=1,…,M,這里定義群集節(jié)點(diǎn)的質(zhì)心軌跡為V,其中V=h/n;

        ii. 如果任何距離的值Me小于聚類閾值θ,將軌跡i添加到聚類e中,最小值為Me;Ce=(I,h,n),并更新Ce←(append(I,i),h+s,n+1); 否則創(chuàng)建一個(gè)新的cluster CM+1←([i],si,1),M←M+1。

        具體算法偽代碼如下:

        輸入:T = {s,…,s,…,s},θ

        輸出:C = [c,…,c,…,c]

        # 創(chuàng)建第一個(gè)聚類

        c1 ← ([1],s1,1)

        C ← [c1]

        M ← 1

        for i = 2 to Ndo

        t ← s

        alld ←infinity(M) #距離緩沖區(qū)

        flip ← zeros(M) #MDF檢查緩沖區(qū)

        for k = 1 to M do

        v ← c·h/c·n

        d ← d(t,v)

        f ← d(t,v)

        # 計(jì)算MDF距離

        if f < d then

        d ← f

        flipk← 1

        end if

        alldk← d

        end for

        m ← min(alld)

        l ← argmin(alld)

        if m < θ then

        # 加入當(dāng)前聚類

        if flip is 1 then

        cl·h ← c·h + tF

        else

        cl·h ← c·h + t

        end if

        cl·n ← cl·n + 1

        append(cl·I,i)

        else

        # 創(chuàng)建新的聚類

        c ← ([i],t,1)

        append(C,c)

        M ← M+1

        end if

        end for

        2 軌跡聚類方法實(shí)現(xiàn)

        原始數(shù)據(jù)采用微軟亞洲研究院發(fā)布的GeoLife GPS Trajectories數(shù)據(jù)集,來進(jìn)行軌跡聚類,考察用QB算法的運(yùn)行效果,這里我們選擇Geolife Trajectories 1.3\Data\010\Trajectory數(shù)據(jù)。

        2.1 數(shù)據(jù)清理

        首先我們需要對(duì)獲得的數(shù)據(jù)進(jìn)行清理,GeoLife GPS Trajectories數(shù)據(jù)集里數(shù)據(jù)組織如圖1所示。

        定義相關(guān)標(biāo)簽,并讀取所有數(shù)據(jù)文件,將獲取到的GPS經(jīng)緯度點(diǎn)信息保存:

        names=['lat','lng','zero','alt','days','date','time']

        streams=[]

        index=0

        userdata='./Geolife Trajectories 1.3/Data/'+'010'+'/Trajectory/'

        filelist=os.listdir(userdata)

        for file in filelist:

        df_list=[pd.read_csv(userdata+file,header=6,

        names=names,index_col=False)]

        df=pd.concat(df_list, ignore_index=True)

        df.drop(['zero','alt','days','date','time'],axis=1,inplace=True)

        df_min=df.iloc[::, :]

        lat_lng_data=np.c_[df_min['lat'].values,df_min['lng'].values]

        streams.append(lat_lng_data)

        print(streams[0][0,0], streams[0][0,1])

        聚類之前先繪制原始軌跡,這里采用gmplot包來進(jìn)行軌跡點(diǎn)繪制:

        #繪制原始軌跡

        from gmplot import gmplot

        gmap=gmplot.GoogleMapPlotter(streams[0][0,0],

        streams[0][0,1],12)

        color=randomcolor()

        for i in range(0, len(streams)):

        gmap.plot(streams[i][:,0],

        streams[i][:,1], color, edge_width=1)

        gmap.draw("normal_map.html")

        待處理的原始軌跡如圖2所示。

        2.2 距離計(jì)算

        我們現(xiàn)在可以從定義兩個(gè)GPS軌跡之間的距離函數(shù)開始,我們將使用大地坐標(biāo)系計(jì)算公式來代替QuickBundle算法中的經(jīng)典歐幾里得距離計(jì)算公式,計(jì)算兩個(gè)經(jīng)緯度點(diǎn)之間的距離。

        #距離計(jì)算

        from math import radians, cos, sin, asin, sqrt

        #公式計(jì)算兩點(diǎn)間距離(m)

        def geodistance(lat1,lng1,lat2,lng2):

        lng1, lat1, lng2, lat2=map(radians, [float(lng1),

        float(lat1), float(lng2), float(lat2)]) #經(jīng)緯度轉(zhuǎn)換成弧度

        dlon=lng2-lng1

        dlat=lat2-lat1

        a=sin(dlat/2)**2 + cos(lat1)*cos(lat2)*sin(dlon/2)**2

        distance=2*asin(sqrt(a))*6371*1000

        #地球平均半徑,6371km

        distance=round(distance/1000,3)

        return distance

        2.3 QB算法實(shí)現(xiàn)

        我們計(jì)算了兩個(gè)軌跡之間的平均點(diǎn)的實(shí)際距離。這種計(jì)算距離的方法可以在且僅當(dāng)兩個(gè)軌跡具有相同數(shù)量的點(diǎn)時(shí)使用,因此我們需要重新采樣所有軌跡,采樣點(diǎn)數(shù)量可以根據(jù)軌跡數(shù)據(jù)集里每條軌跡平均點(diǎn)數(shù)量來確定。使用上面我們定義的兩條軌跡之間的距離計(jì)算函數(shù)geodistance,這里我們就可以運(yùn)行QuickBundle聚類算法進(jìn)行軌跡聚類,聚類閾值θ可以根據(jù)需要聚類效果靈活選取。

        #qb聚類

        import geopy.distance

        from dipy.segment.metric import Metric

        from dipy.segment.metric import ResampleFeature

        import numpy as np

        from dipy.segment.clustering import QuickBundles

        class GPSDistance(Metric):

        def __init__(self):

        super(GPSDistance, self).__init__(feature=

        ResampleFeature(nb_points=256))

        def are_compatible(self, shape1, shape2):

        return len(shape1)==len(shape2)

        def dist(self, v1, v2):

        x=[geodistance(p[0][0], p[0][1], p[1][0], p[1][1])

        for p in list(zip(v1, v2))]

        currD=np.mean(x)

        return currD

        THERSHOLD=10? ?#km

        metric=GPSDistance()

        qb=QuickBundles(threshold=THERSHOLD, metric=metric)

        clusters=qb.cluster(streams)

        print("Nb.clusters:", len(clusters))

        2.4 聚類結(jié)果

        如圖3所示,對(duì)θ分別選擇5、10、25、100得到的聚類結(jié)果,通過對(duì)軌跡結(jié)果的可視化展示[9],可見,θ越大,得到的聚類數(shù)量越少,對(duì)軌跡壓縮效果也越高,同時(shí)損失的原始軌跡數(shù)據(jù)也越多。

        3 結(jié)束語(yǔ)

        本文借鑒了神經(jīng)成像學(xué)領(lǐng)域中的QuickBundles算法,提出一種應(yīng)用該算法對(duì)海量軌跡點(diǎn)進(jìn)行聚類的方法,同時(shí)采用微軟亞洲研究院發(fā)布的GeoLife GPS Trajectories數(shù)據(jù)集對(duì)聚類的方法進(jìn)行驗(yàn)證,通過對(duì)聚類結(jié)果的可視化分析,該方法能夠有效地對(duì)軌跡進(jìn)行聚類,得到的結(jié)果和實(shí)際物體軌跡相符合。

        參考文獻(xiàn)(References):

        [1] Garyfallidis Eleftherios,Brett Matthew,Correia MartaMorgado,Williams Guy B,Nimmo-Smith Ian. QuickBundles, a Method for Tractography Simplification[J]. Frontiers in neuroscience,2012,6

        [2] 陳艷君.面向海量軌跡數(shù)據(jù)的聚類算法研究[D].北京交通大學(xué),2015

        [3] 肖瀟.基于AIS信息的船舶軌跡聚類模型研究[D].集美大學(xué),2015

        [4] 魏照坤.基于AIS的船舶軌跡聚類與應(yīng)用[D].大連海事大學(xué),2015

        [5] 程智源.基于軌跡聚類的交通熱點(diǎn)分析[D].電子科技大學(xué),2018

        [6] 馮琦森.基于出租車軌跡的居民出行熱點(diǎn)路徑和區(qū)域挖掘[D].重慶大學(xué),2016

        [7] 甘波.基于海量物流軌跡數(shù)據(jù)的分析挖掘系統(tǒng)[D].武漢理工大學(xué),2014

        [8] 許佳捷,鄭凱,池明旻,等.軌跡大數(shù)據(jù):數(shù)據(jù)、應(yīng)用與技術(shù)現(xiàn)狀[J].通信學(xué)報(bào),2015(12):97?105

        [9] 王祖超,袁曉如.軌跡數(shù)據(jù)可視分析研究.計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2015(1):9?25

        猜你喜歡
        可視化聚類應(yīng)用
        基于CiteSpace的足三里穴研究可視化分析
        基于Power BI的油田注水運(yùn)行動(dòng)態(tài)分析與可視化展示
        云南化工(2021年8期)2021-12-21 06:37:54
        基于CGAL和OpenGL的海底地形三維可視化
        “融評(píng)”:黨媒評(píng)論的可視化創(chuàng)新
        基于DBSACN聚類算法的XML文檔聚類
        GM(1,1)白化微分優(yōu)化方程預(yù)測(cè)模型建模過程應(yīng)用分析
        科技視界(2016年20期)2016-09-29 12:03:12
        煤礦井下坑道鉆機(jī)人機(jī)工程學(xué)應(yīng)用分析
        科技視界(2016年20期)2016-09-29 11:47:01
        氣體分離提純應(yīng)用變壓吸附技術(shù)的分析
        科技視界(2016年20期)2016-09-29 11:02:20
        會(huì)計(jì)與統(tǒng)計(jì)的比較研究
        基于改進(jìn)的遺傳算法的模糊聚類算法
        蜜桃av噜噜一区二区三区免费| 久久夜色精品国产噜噜av| 久久精品国产9久久综合| 国产自在自线午夜精品视频在| 粗大挺进孕妇人妻在线| 最好看的亚洲中文字幕| 国产欧美日韩精品专区| 国内精品视频一区二区三区| 完整在线视频免费黄片| 一区视频免费观看播放| 中文字幕日韩欧美一区二区三区 | 亚洲无人区乱码中文字幕能看| 国产a√无码专区亚洲av| 色妞www精品视频| 免费无码又爽又刺激又高潮的视频 | 国产乱人伦av在线无码| 成人午夜免费福利| 国产高清女主播在线观看| 内射口爆少妇麻豆| 无码国产激情在线观看| 久久久调教亚洲| 精品一区二区三区婷婷| 无码国产精品一区二区免费式直播 | 又粗又硬又大又爽免费视频播放| 色av综合av综合无码网站| 国产视频精品一区白白色| 成人大片免费视频播放一级| 亚洲中字慕日产2020| 国产精品亚洲欧美天海翼| 国产精品很黄很色很爽的网站| 最新露脸自拍视频在线观看| a级毛片100部免费看| 91精品91| 亚洲专区路线一路线二网| 波多野结衣爽到高潮大喷| 怡春院欧美一区二区三区免费 | 国产一区二区三区资源在线观看 | 日本一区二区在线免费看| 久久成人影院精品777| 欧美a视频在线观看| 女同性恋看女女av吗|