本發(fā)明屬于數(shù)據(jù)預(yù)處理技術(shù)領(lǐng)域,特別涉及一種基于uci機(jī)器學(xué)習(xí)庫中出租車數(shù)據(jù)集的軌跡預(yù)處理的方法。
背景技術(shù):
隨著傳感器網(wǎng)絡(luò)、衛(wèi)星和無線通信等位置采集技術(shù)的快速發(fā)展,各類移動對象產(chǎn)生了大規(guī)模的軌跡數(shù)據(jù)。軌跡數(shù)據(jù)通常包括軌跡序列和軌跡點,其中:軌跡點是記錄軌跡的原子數(shù)據(jù),它由經(jīng)度、緯度和時間戳組成;軌跡序列由若干包含軌跡點組成?,F(xiàn)實生活中的數(shù)據(jù)是紛繁雜亂的,收集來的數(shù)據(jù)往往存在缺失和錄入錯誤。在軌跡數(shù)據(jù)中有缺失值也是正?,F(xiàn)象,若不對其進(jìn)行處理,將會對計算結(jié)果有極大的干擾,故在數(shù)據(jù)讀取后對軌跡數(shù)據(jù)進(jìn)行缺失值預(yù)處理。且數(shù)據(jù)收集和測量過程中的有很多誤差,軌跡在收集或者是錄入的過程中,會有一些錯誤的軌跡點,其在數(shù)據(jù)預(yù)處理時應(yīng)該進(jìn)行數(shù)據(jù)清理。異常點的屬性值明顯偏離期望的或常見的屬性值,會造成相似分析的誤差,故對異常點的檢測分析時不可缺失的。數(shù)據(jù)粒度在數(shù)據(jù)挖掘和統(tǒng)計分析中是一個關(guān)鍵參數(shù),合適的數(shù)據(jù)粒度能在運動對象相似分析及可視化中,能提高分析計算性能。在軌跡數(shù)據(jù)中有的區(qū)域內(nèi)點的分布很密集且特征相似,若不做處理首先會導(dǎo)致數(shù)據(jù)量大,計算速度下降,其次也會影響計算的精度。
為了便于搜索軌跡挖掘,提高分析的精確度,防止算法在軌跡點匹配時過度扭曲,在數(shù)據(jù)預(yù)處理時,需要對軌跡進(jìn)行軌跡分割。
從上述一些需求中不難看出,研究軌跡挖掘的過程中,實現(xiàn)軌跡數(shù)據(jù)預(yù)處理是非常有意義的。
技術(shù)實現(xiàn)要素:
發(fā)明目的:針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供一種能夠處理軌跡數(shù)據(jù)中的缺失值,對于異常點進(jìn)行檢測和處理,并能對復(fù)雜且有重疊的軌跡進(jìn)行切割的出租車數(shù)據(jù)集的軌跡預(yù)處理方法。
技術(shù)方案:為解決上述技術(shù)問題,本發(fā)明提供一種出租車數(shù)據(jù)集的軌跡預(yù)處理方法,包括如下步驟:
步驟一:對于軌跡數(shù)據(jù)進(jìn)行獲取,采樣軌跡點包括經(jīng)度、緯度和時間戳信息;
步驟二:對軌跡數(shù)據(jù)進(jìn)行解析并抽象存儲在實體對象中,然后對軌跡進(jìn)行編號,加入軌跡點id;
步驟三:對解析后的軌跡數(shù)據(jù)進(jìn)行預(yù)處理,先進(jìn)行補缺階段分析,查找軌跡缺失值,利用線性插值法或平均值法補缺缺失值;
步驟四:對進(jìn)行完成缺失值處理后的數(shù)據(jù)再進(jìn)行異常值檢測,先對異常值檢測并處理,然后通過數(shù)據(jù)冗余檢測及數(shù)據(jù)壓縮;
步驟五:對檢測后的數(shù)據(jù)進(jìn)行切割,搜索軌跡中處于拐角的軌跡點,生成拐點集,對拐點集進(jìn)行合并和調(diào)整,按拐點集進(jìn)行軌跡切割;
步驟六:軌跡信息更新并進(jìn)行軌跡輸出。
進(jìn)一步的,所述步驟三中補缺階段分析中,軌跡基本缺失情況和缺失值處理方法對應(yīng)如下,其中軌跡基本缺失情況有如下三種:
1)經(jīng)、緯度同時丟失;
2)經(jīng)度丟失或緯度丟失;
3)時間戳丟失;
其他復(fù)雜情況可由這三種情況進(jìn)行復(fù)合,復(fù)合缺失情況可拆開由基本缺失情況進(jìn)行處理;
對應(yīng)的當(dāng)經(jīng)、緯度同時丟失時,由于其缺失數(shù)據(jù)過多,該數(shù)據(jù)在軌跡分析時不會有意義,則從軌跡中去除該點;
當(dāng)經(jīng)度和緯度丟失其中之一時,利用線性插值的方法來補全缺失值,線性插值是一種插值方法,指使用連接兩個已知量的直線來確定在兩個已知量之間的一個未知量的值的方法;
當(dāng)時間丟失時,利用前后軌跡點的時間戳來計算缺失時間的平均值,補全缺失的時間戳。
進(jìn)一步的,所述步驟四中異常值檢測并處理的具體步驟如下:利用k-means算法實現(xiàn)異常點檢測,利用點與點之間的歐氏距離作為軌跡點間的相似度測量標(biāo)準(zhǔn);k-means屬于劃分式聚類算法,其需要預(yù)先指定聚類數(shù)目或聚類中心,通過反復(fù)迭代運算,逐步降低目標(biāo)函數(shù)的誤差值,當(dāng)目標(biāo)函數(shù)值收斂時,得到最終聚類結(jié)果;檢測之后,對軌跡點時間戳進(jìn)行精確分析,若是異常值,則去掉。
進(jìn)一步的,所述步驟四中數(shù)據(jù)冗余檢測及數(shù)據(jù)壓縮的具體步驟如下:對相似軌跡點聚集到一個類群里,該群里的點有些距離很接近且相似,每次取3個點作為研究對象,若這3個點基本在一條直線上,便將其中的非拐點去掉,最多去掉其中的2個點。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于:
本發(fā)明方法能100%處理缺失值;能檢測和處理85%左右的異常點;能去掉的冗余點所占軌跡點的區(qū)間為(0,25%);對于復(fù)雜且經(jīng)緯度有重疊的軌跡能進(jìn)行有效切割。
本發(fā)明中對于缺失值的處理,是查詢出數(shù)據(jù)中的缺失值,分析缺失情況屬于哪一類型,再根據(jù)具體類型利用插值法或均值法進(jìn)行補缺,其中線性插值是最簡潔而效率最高的缺失值處理方法。
本發(fā)明中系統(tǒng)異常點檢測的基本思想是一個類簇內(nèi)的實體是相似的,不同類簇的實體是不相似的;一個類簇是測試空間中點的會聚,同一類簇的任意兩個點間的距離小于不同類簇的任意兩個點間的距離;類簇可以描述為一個包含密度相對較高的點集的多維空間中的連通區(qū)域,它們借助包含密度相對較低的點集的區(qū)域與其他區(qū)域(類簇)相分離。本系統(tǒng)異常點檢測采用k-means算法實現(xiàn),利用點與點之間的歐氏距離作為軌跡點間的相似度測量標(biāo)準(zhǔn)。
本發(fā)明采用數(shù)據(jù)壓縮的技術(shù),去除冗余的點,即類似于停留點的軌跡點;本系統(tǒng)所指停留點則是在其基礎(chǔ)上擴(kuò)展,不影響軌跡幾何特征而停留在在軌跡上軌跡點;數(shù)據(jù)壓縮算法的基本思想:去掉部分冗余的點,保證把這些點去掉后不會影響原軌跡的幾何特征,如斜率、長度等;從而達(dá)到減小軌跡數(shù)據(jù)的大小,提高系統(tǒng)性能和精確度,減小研究對象的數(shù)據(jù)粒度的目的。
本發(fā)明使用的軌跡分割方法即是處理檢測的高曲率點(角)的軌跡,然后用它們作為分離點原始路徑分割成一些子軌跡段;軌跡切割算法采用基于拐角的切割算法,其算法的基本思想為:在軌跡中搜尋軌跡中的曲率高于90度的拐角點,然后對拐角點進(jìn)行檢測,看是否適合切割,若適合,則保留;否則丟棄;再結(jié)合軌跡點個數(shù)進(jìn)行軌跡切割調(diào)整。
本發(fā)明也適用于數(shù)據(jù)結(jié)構(gòu)與uci機(jī)器學(xué)習(xí)庫出租車數(shù)據(jù)集相類似的軌跡數(shù)據(jù)集。
附圖說明
圖1為本發(fā)明的總體流程圖。
具體實施方式
下面結(jié)合附圖和具體實施方式,進(jìn)一步闡明本發(fā)明。
uci機(jī)器學(xué)習(xí)庫的出租車數(shù)據(jù)集為出租車位置記錄數(shù)據(jù),數(shù)據(jù)采集的時間間隔為1分鐘,總共包括12255輛車連續(xù)6天的定位數(shù)據(jù)。獲取的原始文本數(shù)據(jù)主要包括記錄關(guān)鍵字、車輛編號、日期時間、經(jīng)度、緯度、方向、瞬時速度等主要信息。本系統(tǒng)基于出租車數(shù)據(jù)集研究一種軌跡預(yù)處理的構(gòu)建方法。
為了便于軌跡分析和計算的工作,對軌跡數(shù)據(jù)進(jìn)行預(yù)處理,本系統(tǒng)基于uci機(jī)器學(xué)習(xí)庫的出租車數(shù)據(jù)集,使用eclipse開發(fā)工具,利用javaee技術(shù)設(shè)計并實現(xiàn)了一個具有軌跡數(shù)據(jù)預(yù)處理的web應(yīng)用。
一種基于uci機(jī)器學(xué)習(xí)庫出租車數(shù)據(jù)集的軌跡預(yù)處理的系統(tǒng)使用了3種具體解決方法。在補缺階段,軌跡基本缺失情況有如下幾種:(1)經(jīng)、緯度同時丟失;(2)經(jīng)度丟失或緯度丟失;(3)時間戳丟失。其他復(fù)雜情況可由這三種情況進(jìn)行復(fù)合,復(fù)合缺失情況可拆開由基本缺失情況進(jìn)行處理;當(dāng)經(jīng)、緯度同時丟失時,由于其缺失數(shù)據(jù)過多,該數(shù)據(jù)在軌跡分析時不會有意義,則從軌跡中去除該點;故;當(dāng)經(jīng)度和緯度丟失其中之一時,利用線性插值的方法來補全缺失值,線性插值是一種插值方法,指使用連接兩個已知量的直線來確定在兩個已知量之間的一個未知量的值的方法;當(dāng)時間丟失時,利用前后軌跡點的時間戳來計算缺失時間的平均值,補全缺失的時間戳。在檢測階段,首先,利用k-means算法實現(xiàn)異常點檢測,利用點與點之間的歐氏距離作為軌跡點間的相似度測量標(biāo)準(zhǔn);k-means屬于劃分式聚類算法,其需要預(yù)先指定聚類數(shù)目或聚類中心,通過反復(fù)迭代運算,逐步降低目標(biāo)函數(shù)的誤差值,當(dāng)目標(biāo)函數(shù)值收斂時,得到最終聚類結(jié)果;檢測之后,對軌跡點時間戳進(jìn)行精確分析,若是異常值,則去掉。其次,對相似軌跡點聚集到一個類群里,該群里的點有些距離很接近且相似,每次取3個點作為研究對象,若這3個點基本在一條直線上,便將其中的非拐點去掉,最多去掉其中的2個點。此操作能有效維持原軌跡的幾何特征,同時又去除了冗余的點,達(dá)到數(shù)據(jù)壓縮的目的。在切割階段,尋找軌跡拐角,并保存其拐角點信息;對拐角點進(jìn)行調(diào)整,如密集拐角合并;軌跡按拐角切割,對切割后子軌跡段進(jìn)行保存。
主要實現(xiàn)步驟如下:
步驟1:獲取用戶提交的軌跡文件;
步驟2:解析軌跡數(shù)據(jù)且將數(shù)據(jù)抽象存儲,對軌跡進(jìn)行編號,加入軌跡點id;
步驟3:查找軌跡缺失值,分析缺失類型,針對不同類型進(jìn)行缺失值處理;
步驟4:采用誤差平方和準(zhǔn)則函數(shù)作為聚類準(zhǔn)則函數(shù),歐式距離作為相似性的評價指標(biāo),對所選擇軌跡的特征進(jìn)行計算和提??;
步驟5:軌跡點聚類,認(rèn)為簇是由距離靠近的對象組成,因此把得到緊湊且獨立的簇作為最終目標(biāo),當(dāng)檢測出有單獨的點并不屬于任何堆時且與時間戳的值不可行時,則認(rèn)為是異常點,可允許去除;
步驟6:對聚類后的群里的點進(jìn)行處理,每次取3個點作為研究對象,若3個點基本在一條直線上,便去掉其中的非拐點,最多去掉其中的2個點;
步驟7:尋找軌跡拐角,并保存其拐角點信息,對拐角點進(jìn)行調(diào)整,生成軌跡切割點集,按切割點集進(jìn)行軌跡切割并保存;
步驟8:軌跡更新并輸出。
本發(fā)明中用戶可從出租車數(shù)據(jù)集中獲取軌跡數(shù)據(jù)文件,軌跡數(shù)據(jù)文件為.csv格式。用戶將軌跡數(shù)據(jù)文件提交給服務(wù)器,系統(tǒng)對軌跡數(shù)據(jù)文件進(jìn)行解析,并存儲為抽象的軌跡實體類型。
本發(fā)明在實際操作中結(jié)合具體的設(shè)備的具體使用流程如下:點擊進(jìn)入應(yīng)用之后,提交軌跡文件;根據(jù)用戶需求,可選擇數(shù)據(jù)預(yù)處理的三個階段,進(jìn)行自由自合,比如根據(jù)之后軌跡挖掘內(nèi)容,軌跡切割不需要使用,則可不選擇切割階段;文件上傳后,對提交的軌跡文件進(jìn)行解析和存儲,根據(jù)選擇軌跡預(yù)處理操作來對軌跡進(jìn)行處理;查找缺失值,分析缺失值類型,利用插值法或均值法可補缺;利用k-means算法實現(xiàn)異常點檢測,以點與點之間的歐氏距離作為軌跡點間的相似度測量標(biāo)準(zhǔn),將軌跡點劃分式聚類;檢測出孤立點后,結(jié)合時間戳進(jìn)行分析,去掉異常點;聚類后的群里的點進(jìn)行處理,檢測出冗余點群,采用分樣法,去除非拐點;最后搜索拐角,找到拐點集,對其進(jìn)行調(diào)整,生成切割點集,進(jìn)行軌跡切割;可查看在補缺階段處理后的軌跡數(shù)據(jù);點擊可視化,可將檢測階段的軌跡顯示在百度地圖上;利用不同的顏色標(biāo)記,在軌跡上,基于拐角軌跡切割。
以上所述僅為本發(fā)明的實施例子而已,并不用于限制本發(fā)明。凡在本發(fā)明的原則之內(nèi),所作的等同替換,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。本發(fā)明未作詳細(xì)闡述的內(nèi)容屬于本專業(yè)領(lǐng)域技術(shù)人員公知的已有技術(shù)。