pythongps聚类_Python中的GPS轨迹聚类
當我們想要利用智能手機或智能手環(huán)等個人設(shè)備生成的GPS數(shù)據(jù)時,G PS軌跡聚類是一種常見的分析。
在本文中,我們將介紹一種在Python中執(zhí)行GPS軌跡聚類的快速簡便方法。這里的主要目標是創(chuàng)建包含“相似”軌跡的聚類。例如,我們希望將每天從工作到家的路徑放在同一個聚類中。
本文分為兩個主要部分。首先,我們將描述聚類算法。在第二部分中,我們將展示如何在Python中使用和自定義算法。
神經(jīng)圖像算法與GPS軌跡聚類
在本文中,我們使用了一種用于neuromaging的聚類算法,而不是像K-Means或DBSCAN那樣使用經(jīng)典的聚類算法。
QuickBundles (QB)是一種簡單的聚類算法,用于磁共振成像中對應(yīng)用tractography算法得到的白質(zhì)纖維進行聚類。
只需查看下圖,我們就可以看到大腦中的白質(zhì)纖維看起來像GPS軌跡。
應(yīng)用tractography算法獲得的白質(zhì)纖維的實例
主要思想是將每個GPS軌跡視為白質(zhì)纖維,然后在同一個聚類中合并“相似”軌跡。在本文的其余部分,我們將假設(shè)GPS Trajectory = White Matter Fiber。
有了這個假設(shè),我們就可以使用原始論文中提供的算法描述:
算法如下進行。在算法的任何一步,我們都有 M個clusters。選擇第一個streamline s1并將其放在第一個cluster c1 ←({1},s1,1); 此時M = 1。對于每個剩余的streamlines,依次 i = 2 ,. 。。,N:
(i)計算streamline si與所有當前聚類 ce 的質(zhì)心streamline ve之間的距離 , e = 1 ,. 。。,M,其中v動態(tài)定義為v = h/n;
(ii)如果任何距離的值me小于聚類閾值θ,,將streamlined i添加到聚類e,最小值為me; ce =(I,h,n),并更新 ce ←(append(I, i), h + s, n + 1); 否則創(chuàng)建一個新的cluster cM + 1 ←([i],si,1),M←M + 1.
在下圖中,我們展示了算法如何根據(jù)給定的閾值合并公共質(zhì)心中的不同streamlines 的示例。
QuickBundle質(zhì)心具有不同的閾值
閾值是THE要選擇的參數(shù),以優(yōu)化聚類算法的行為。如果你想要“大”軌跡,你可以設(shè)置閾值的高值。否則,如果您想要小聚類,則需要較低的值。
該論文的作者提供了所提出方法的Python實現(xiàn)。該算法作為dipy庫的一部分提供,而算法的文檔可在此處獲得(http://nipy.org/dipy/examples_built/segment_quickbundles.html#)。
GPS軌跡聚類
我們使用的數(shù)據(jù)集來自微軟亞洲研究院發(fā)布的GeoLife GPS Trajectories數(shù)據(jù)集,可在此處獲得(https://www.microsoft.com/en-us/download/details.aspx?id=52367)。該數(shù)據(jù)集文檔:https://yidatao.github.io/2016-12-23/geolife-dbscan/。
在開始執(zhí)行聚類之前,讓我們使用gmplot繪制谷歌地圖上的所有軌跡。
數(shù)據(jù)集中的GPS軌跡
我們現(xiàn)在可以從定義兩個GPS軌跡(streamlines)之間的距離函數(shù)開始。我們將使用GeoPy庫中定義的GPS距離,而不是使用QuickBundle中提供的經(jīng)典歐幾里得距離。
我們計算了兩個軌跡之間的平均點的GPS距離。這種計算距離的方法可以在且僅當兩個軌跡具有相同數(shù)量的點時使用,這就是為什么我們使用ResampleFeature類重新采樣所有軌跡的原因。
一旦定義了兩條軌跡之間的距離,就可以運行QuickBundle聚類算法。
用于運行軌跡聚類的代碼
然后,我們可以像以前一樣使用gmplot繪制谷歌地圖上不同聚類中包含的軌跡。
使用gmplot聚類圖
這里是my_map.html的結(jié)果,用于繪制不同的聚類
Cluster #0
Cluster #2
Cluster #30
結(jié)論
在本文中,我們描述了一種簡單快速的方法來執(zhí)行GPS數(shù)據(jù)的軌跡聚類。目標是使用QuickBundles實現(xiàn)的,QuickBundles是一種應(yīng)用于神經(jīng)成像的聚類算法。
該算法的主要限制與閾值參數(shù)的調(diào)整有關(guān)。但是,作為數(shù)據(jù)分析中的所有內(nèi)容,需要根據(jù)所需的群集類型選擇此參數(shù)。
總結(jié)
以上是生活随笔為你收集整理的pythongps聚类_Python中的GPS轨迹聚类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 机器学习_使用Python
- 下一篇: python 创建netcdf_pyth