本發(fā)明屬于智能交通系統(tǒng)范疇,涉及一種基于云計算框架的交通大數(shù)據(jù)清洗方法。
背景技術(shù):
智能交通系統(tǒng)有助于改善交通通行情況,對于受交通擁堵困擾的城市,交通擁堵問題越來越受到人們的關(guān)注。交通傳感器是智能交通系統(tǒng)數(shù)據(jù)的重要來源。但是受設(shè)備精度、設(shè)備故障、采集環(huán)境等多種因素的影響,往往會采集到異?;虺鲥e的數(shù)據(jù)。這將降低智能交通系統(tǒng)大部分應(yīng)用(比如交通狀態(tài)估計、交通狀態(tài)預(yù)測)的準(zhǔn)確性。因此,需要對交通數(shù)據(jù)進行清洗,填補缺失數(shù)據(jù)、剔除出錯數(shù)據(jù)、修正異常數(shù)據(jù)。目前使用的交通傳感器種類多、采樣頻率高,系統(tǒng)將面對海量的交通數(shù)據(jù),在清洗過程中需要考慮處理效率。
Map/Reduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集的并行運算。它極大地方便了編程人員在不會分布式并行編程的情況下,將程序運行在分布式系統(tǒng)上。針對具體應(yīng)用,實現(xiàn)該模型需要指定一個Map(映射)函數(shù),用來把一組鍵值對映射成一組新的鍵值對,指定并發(fā)的Reduce(歸約)函數(shù),用來保證所有映射的鍵值對中的每一個共享相同的鍵組。因此,采用Map/Reduce框架時,重點是設(shè)計Map和Reduce兩個函數(shù)。
通過調(diào)研發(fā)現(xiàn),現(xiàn)有交通數(shù)據(jù)清洗方面的工作包括:王曉原等《交通流數(shù)據(jù)清洗與狀態(tài)辨識及優(yōu)化控制關(guān)鍵理論方法》結(jié)合中國高速公路道路交通基礎(chǔ)設(shè)施現(xiàn)狀和未來發(fā)展的需要,對我國的交通流狀態(tài)辨識框架及其關(guān)鍵理論和方法進行了研究,提出了交通流數(shù)據(jù)清洗的方法;他們的文章《交通流數(shù)據(jù)清洗規(guī)則研究》也提出了交通數(shù)據(jù)清洗的規(guī)則。這些規(guī)則都是結(jié)合交通流理論提出,適合高速路等道路的情況,本專利從數(shù)據(jù)本身出發(fā),采用了聚類獲取交通運行規(guī)律的方法,適用于城市道路等交通復(fù)雜度高的情況;專利《基于時空分析的交通流數(shù)據(jù)清洗方法》采用交通流在時間和空間上的關(guān)系,提出了數(shù)據(jù)清洗的方法;國外的研究工作者還提出了狀態(tài)相空間重構(gòu)模型、小波分解模型、神經(jīng)網(wǎng)絡(luò)、支持向量機等方法,但是復(fù)雜度都較高,很難實際應(yīng)用于處理大數(shù)據(jù)。同時,上述工作都沒有考慮面對T級別(日處理量大于500G)交通大數(shù)據(jù)的情況,包括如何進行高效數(shù)據(jù)處理。
現(xiàn)有的傳感器采集交通數(shù)據(jù)存在數(shù)據(jù)缺失、數(shù)據(jù)異常和數(shù)據(jù)錯誤等問題,所指的數(shù)據(jù)缺失為由于傳感器或網(wǎng)絡(luò)通信原因智能交通系統(tǒng)未采集到數(shù)據(jù)或缺失了某一維的數(shù)據(jù);數(shù)據(jù)異常為由于傳感器本身設(shè)備誤差或環(huán)境偶發(fā)因素引起的數(shù)據(jù)偏離正常值;數(shù)據(jù)錯誤為采集或傳輸出錯,導(dǎo)致的數(shù)據(jù)嚴重偏離正常值,出現(xiàn)錯誤。
技術(shù)實現(xiàn)要素:
為了克服已有交通數(shù)據(jù)清洗方式的處理效率較低、無法適用于大數(shù)據(jù)的不足,本發(fā)明提供了一種提升處理效率、有效適用于大數(shù)據(jù)的基于云計算框架的交通大數(shù)據(jù)清洗方法,在云計算(Hadoop的Map/Reduce)框架下,針對交通數(shù)據(jù)高維、海量、數(shù)據(jù)更新快的特點,利用集群系統(tǒng)的并行計算能力來解決面臨的海量交通數(shù)據(jù)的快速清洗問題,能夠快速且有效的挖掘交通數(shù)據(jù)相似性特征,用于清洗異常數(shù)據(jù)。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
一種基于云計算平臺的交通大數(shù)據(jù)清洗方法,包括以下步驟:
步驟1:缺失數(shù)據(jù)補全
掃描整個數(shù)據(jù)源,若存在缺失數(shù)據(jù),根據(jù)相同路段數(shù)據(jù)所在維的均值填充;需要根據(jù)數(shù)據(jù)產(chǎn)生的位置進行分發(fā),由不同的子節(jié)點并行處理;
步驟2:聚類獲取路段特征數(shù)據(jù)
將具有相似數(shù)據(jù)變化規(guī)律的數(shù)據(jù)聚成一類,獲得該路段數(shù)據(jù)的特征值,所述特征值為聚類中心為;每個聚類過程由不同節(jié)點完成,特征值的獲取由reduce步驟完成,步驟如下:
步驟2.1:根據(jù)路段標(biāo)號r對數(shù)據(jù)集τ進行分割,獲得N個數(shù)據(jù)塊,然后,每個數(shù)據(jù)塊分割為M個子數(shù)據(jù)塊,獲得N×M個子數(shù)據(jù)塊,并分發(fā)給子節(jié)點;
步驟2.2:子節(jié)點把數(shù)據(jù)塊分配給N×M個Map函數(shù),每個MAP任務(wù)處理一個子數(shù)據(jù)塊;
步驟2.3:在Map函數(shù)中,首先,對子數(shù)據(jù)塊進行聚類,獲得聚類中心ci(i=1,2,3,...,K),聚類中心數(shù)目K由壓縮因子α確定,K=floor(α*N),floor表示向下取整;然后,離散化聚類中心,以道路標(biāo)號(r)為鍵值構(gòu)造數(shù)據(jù)對象進行分發(fā),數(shù)據(jù)對象屬性包含鍵值、聚類中心ci和中心點數(shù)目K、傳感器數(shù)據(jù)集合、數(shù)據(jù)元素和位置信息,所述鍵值為路段標(biāo)號r;
步驟2.4:在Reduce函數(shù)中,合并多個子數(shù)據(jù)塊的聚類中心,獲得特征值xl(l=1,2,3,...,K′),K′為特征值個數(shù),步驟為:
2.4.1)計算兩個聚類中心(ci、cj)之間的歐式距離lij,獲得兩個聚類中心之間的最小歐式距離lmin,lmin=min(|ci-cj|),其中i,j∈K且i≠j,|*|表示歐式距離;
2.4.2)特征值計算采用:xl=avg(c1,c2,...,ck),k為滿足合并條件的聚類中心個數(shù),當(dāng)多個聚類中心ck滿足合并條件lij<(1+α)*lmin時,特征值為多個聚類中心的平均值,當(dāng)一個聚類中心ck與其他聚類中心的歐式距離都不滿足合并條件時,特征值為它自身;
2.4.3)若K′<K,聚類過程結(jié)束;反之,調(diào)整壓縮因子α=α*1.5,擴大壓縮因子繼續(xù)聚類,重新進行步驟2.2到步驟2.4;
步驟2.5:將特征值xl寫入以路段標(biāo)號為行標(biāo)的數(shù)據(jù)集到分布式文件系統(tǒng),完成數(shù)據(jù)清洗過程。
進一步,所述清洗方法還包括以下步驟:
步驟3:更新和剔除異常數(shù)據(jù),步驟如下:
步驟3.1:根據(jù)道路標(biāo)號r分發(fā)數(shù)據(jù)集給子節(jié)點;
步驟3.2:在Map函數(shù)中,首先讀取數(shù)據(jù)d,找出距離最小的聚類中心編號,搜索特征值xl(l=1,2,3,...,K′),當(dāng)|xl-d|距離最小時,將i賦值給m;然后,以聚類中心編號m為鍵值構(gòu)造對象進行分發(fā),對象屬性包括聚類中心編號m、聚類中心差值|xm-d|、數(shù)據(jù)本身d、傳感器數(shù)據(jù)集合和位置信息;
步驟3.3:在Reduce函數(shù)中,若聚類中心差值(|xm-d|<α*|xm|),正常數(shù)據(jù)不處理;若聚類中心差值(|xm-d|>5α*|xm|),剔除數(shù)據(jù);若不符合這兩種情況,更新數(shù)據(jù),如下公式:d′=d-(d-xm)*α,最后,數(shù)據(jù)d′寫入以路段標(biāo)號為行標(biāo)的數(shù)據(jù)到分布式文件系統(tǒng),清洗過程完成。
再進一步,所述步驟1中,缺失數(shù)據(jù)補全的步驟如下:
步驟1.1:在Map函數(shù)中,首先,讀入歷史數(shù)據(jù),獲取數(shù)據(jù)元素的數(shù)值;然后,解析出數(shù)據(jù)產(chǎn)生的位置信息,獲得路段標(biāo)號r;最后,以r為鍵值構(gòu)造數(shù)據(jù)對象并分發(fā),數(shù)據(jù)對象屬性包含鍵值、傳感器數(shù)據(jù)集合、缺失信息、數(shù)據(jù)元素和位置信息;
步驟1.2:在Reduce函數(shù)中,首先,計算子數(shù)據(jù)塊各維的均值μ和標(biāo)準(zhǔn)差δ;選取(μ-δ,μ+δ)范圍的子數(shù)據(jù)進行計算均值獲得μ2,填充缺失數(shù)據(jù);最后,寫入以路段標(biāo)號為行標(biāo)的數(shù)據(jù)集τ到分布式文件系統(tǒng)。
本發(fā)明的有益效果主要表現(xiàn)在:本發(fā)明利用云計算平臺的并行計算能力來解決交通大數(shù)據(jù)清洗時的計算速度問題;以數(shù)據(jù)清洗為目標(biāo),以聚類方法為基礎(chǔ),提出了新的交通數(shù)據(jù)清洗思路和方法;該方法能快速聚類,挖掘交通數(shù)據(jù)相似性特征,實現(xiàn)對異常的交通數(shù)據(jù)的分布式處理,保障后續(xù)針對數(shù)據(jù)的各項應(yīng)用的準(zhǔn)確性和魯棒性。
附圖說明
圖1是一種基于云計算框架的交通大數(shù)據(jù)清洗方法的流程圖。
圖2是合并多個子數(shù)據(jù)塊的聚類中心示意圖
具體實施方式
下面結(jié)合附圖對本發(fā)明作進一步描述。
參照圖1和圖2,一種基于云計算平臺的交通大數(shù)據(jù)清洗方法,包括以下步驟:
步驟1:缺失數(shù)據(jù)補全
掃描整個數(shù)據(jù)源,若存在缺失數(shù)據(jù),根據(jù)相同路段數(shù)據(jù)所在維的均值填充。整個過程,需要根據(jù)數(shù)據(jù)產(chǎn)生的位置(數(shù)據(jù)采集的路段)進行分發(fā),由不同的子節(jié)點并行處理。具體步驟如下:
步驟1.1:在Map函數(shù)中,首先,讀入歷史數(shù)據(jù),獲取數(shù)據(jù)元素的數(shù)值;然后,解析出數(shù)據(jù)產(chǎn)生的位置信息,獲得路段標(biāo)號(r);最后,以r為鍵值構(gòu)造數(shù)據(jù)對象并分發(fā),數(shù)據(jù)對象屬性包含鍵值、傳感器數(shù)據(jù)集合、缺失信息、數(shù)據(jù)元素和位置信息,所述鍵值為路段標(biāo)號r;
步驟1.2:在Reduce函數(shù)中,首先,計算子數(shù)據(jù)塊各維的均值(μ)和標(biāo)準(zhǔn)差(δ);選取(μ-δ,μ+δ)范圍的子數(shù)據(jù)進行計算均值獲得μ2,填充缺失數(shù)據(jù);最后,寫入以路段標(biāo)號為行標(biāo)的數(shù)據(jù)集(τ)到分布式文件系統(tǒng)。
步驟2:聚類獲取路段特征數(shù)據(jù)
將具有相似數(shù)據(jù)變化規(guī)律的數(shù)據(jù)聚成一類,獲得該路段數(shù)據(jù)的特征值(聚類中心)。為提高計算效率,每個聚類過程由不同節(jié)點完成。因為節(jié)點不能直接通信,所以最后特征值的獲取由reduce步驟完成。具體步驟如下:
步驟2.1:根據(jù)路段標(biāo)號(r)對數(shù)據(jù)集(τ)進行分割,獲得N個數(shù)據(jù)塊。然后,每個數(shù)據(jù)塊分割為M個子數(shù)據(jù)塊,獲得N×M個子數(shù)據(jù)塊,并分發(fā)給子節(jié)點;
步驟2.2:子節(jié)點把數(shù)據(jù)塊分配給N×M個Map函數(shù),每個MAP任務(wù)處理一個子數(shù)據(jù)塊;
步驟2.3:在Map函數(shù)中,首先,對子數(shù)據(jù)塊進行聚類(可選用Kmeans、層次聚類等能產(chǎn)生聚類中心的聚類方法),獲得聚類中心ci(i=1,2,3...,K)。聚類中心數(shù)目K由壓縮因子α(初始值為常數(shù),小于1,比如0.05)確定,K=floor(α*N),floor表示向下取整;然后,離散化聚類中心,以道路標(biāo)號(r)為鍵值構(gòu)造數(shù)據(jù)對象進行分發(fā),數(shù)據(jù)對象屬性包含鍵值(r)、聚類中心(ci)和中心點數(shù)目(K)、傳感器數(shù)據(jù)集合、數(shù)據(jù)元素和位置信息;
步驟2.4:在Reduce函數(shù)中,合并多個子數(shù)據(jù)塊的聚類中心,獲得特征值xl(l=1,2,3,...,K′),K′為特征值個數(shù),步驟為:
2.4.1)計算兩個聚類中心(ci、cj)之間的歐式距離lij,獲得兩個聚類中心之間的最小歐式距離lmin,lmin=min(|ci-cj|),其中i,j∈K且i≠j,|*|表示歐式距離;
2.4.2)特征值計算采用:xl=avg(c1,c2,...,ck),k為滿足合并條件的聚類中心個數(shù),當(dāng)多個聚類中心ck滿足合并條件lij<(1+α)*lmin時,特征值為多個聚類中心的平均值,當(dāng)一個聚類中心ck與其他聚類中心的歐式距離都不滿足合并條件時,特征值為它自身。
2.4.3)若K′<K,聚類過程結(jié)束;反之,調(diào)整壓縮因子α=α*1.5,擴大壓縮因子繼續(xù)聚類,重新進行步驟2.2到步驟2.4。
步驟2.5:將特征值xl寫入以路段標(biāo)號為行標(biāo)的數(shù)據(jù)集到分布式文件系統(tǒng)
步驟3:更新和剔除異常數(shù)據(jù)
新采集的需要清洗的數(shù)據(jù)被分發(fā)到各個子節(jié)點,首先,進行缺失數(shù)據(jù)補全。然后,查找異常數(shù)據(jù);最后,進行異常數(shù)據(jù)的更新或剔除。具體步驟如下:
步驟3.1:根據(jù)道路標(biāo)號(r)分發(fā)數(shù)據(jù)集給子節(jié)點;
步驟3.2:在Map函數(shù)中,首先讀取數(shù)據(jù)d,找出距離最小的聚類中心編號,搜索特征值xl(l=1,2,3,...,K′,當(dāng)|xl-d|距離最小時,將i賦值給m;然后,以聚類中心編號(m)為鍵值構(gòu)造對象進行分發(fā),對象屬性包括聚類中心編號(m)、聚類中心差值(|xm-d|)、數(shù)據(jù)本身(d)、傳感器數(shù)據(jù)集合和位置信息
步驟3.3:在Reduce函數(shù)中,若聚類中心差值(|xm-d|<α*|xm|),正常數(shù)據(jù)不處理;若聚類中心差值(|xm-d|>5α*|xm|),剔除數(shù)據(jù);若不符合這兩種情況,更新數(shù)據(jù),如下公式:d′=d-(d-xm)*α。最后,數(shù)據(jù)d′寫入以路段標(biāo)號為行標(biāo)的數(shù)據(jù)到分布式文件系統(tǒng),清洗過程完成。
本實施例的數(shù)據(jù)來自安裝浙江省杭州市天目山路和余杭塘路,紫金花路和莫干山路之間400多條路段的傳感器,或者行駛在這些路段的GPS浮動車。傳感器包括浮動車GPS、SCATS線圈、微波雷達和卡口視頻數(shù)據(jù)。四源數(shù)據(jù)只采用了速度或速率的結(jié)果,作為本實施例的輸入。數(shù)據(jù)采集時間為2013年7月,共30天數(shù)據(jù),原始數(shù)據(jù)總量共473.2GB。其中,前28天的數(shù)據(jù)用于聚類獲取路段特征數(shù)據(jù),后2天數(shù)據(jù)用于對方法效果的測試。在性能測試中,采用的是8臺物理計算機(16核,1.6GHz CPU)。
步驟101,原始數(shù)據(jù)清洗。在Map函數(shù)中,首先,讀入一行數(shù)據(jù),獲取數(shù)據(jù)元素的數(shù)值;然后,解析出數(shù)據(jù)產(chǎn)生的位置信息,獲得路段標(biāo)號(r);最后,以r為鍵值構(gòu)造數(shù)據(jù)對象并分發(fā),數(shù)據(jù)對象屬性包含鍵值(r)、傳感器數(shù)據(jù)集合、缺失信息和位置信息。以莫干山路-文二路-文一路為例,獲得路段標(biāo)號為267,以r為鍵值構(gòu)造數(shù)據(jù)對象并分發(fā)。
步驟102:在Reduce函數(shù)中,首先,計算子數(shù)據(jù)塊速度的均值(μ)、標(biāo)準(zhǔn)差(δ);然后,選取(μ-δ,μ+δ)范圍數(shù)據(jù)進行均值計算獲得μ2,填充缺失數(shù)據(jù);最后,寫入以路段標(biāo)號為行標(biāo)的數(shù)據(jù)到分布式文件系統(tǒng)。
步驟103:根據(jù)路段標(biāo)號(r)對數(shù)據(jù)集進行分割,獲得30個數(shù)據(jù)塊。然后,每個數(shù)據(jù)塊分割為20個子數(shù)據(jù)塊,獲得30*20個子數(shù)據(jù)塊,并分發(fā)給子節(jié)點。子節(jié)點把數(shù)據(jù)塊分配給30*20個Map函數(shù),每個MAP任務(wù)處理一個子數(shù)據(jù)塊;這里的數(shù)據(jù)以一個數(shù)據(jù)塊為例。
步驟104:在Map函數(shù)中,首先,對子數(shù)據(jù)塊進行聚類(實施過程中采用Kmeans),獲得初始值聚類中心。聚類中心數(shù)目K=80;然后,以道路標(biāo)號(r)為鍵值構(gòu)造數(shù)據(jù)對象進行分發(fā),數(shù)據(jù)對象屬性包含鍵值(r)、聚類中心(ci)和中心點數(shù)目(K);
步驟105:在Reduce函數(shù)中,合并多個子塊的聚類中心(ci),獲得特征值xl(l=1,2,3,...,K′);
步驟106:在Map函數(shù)中,首先,計算每一行數(shù)據(jù)(d)和聚類中心的聚類,找出距離最小的聚類中心編號m;然后,以聚類中心編號m為鍵值構(gòu)造對象進行分發(fā),對象屬性包括聚類中心編號(m)、聚類中心差值(|xm-d|)、數(shù)據(jù)本身(d)。
步驟107:在Reduce函數(shù)中,若聚類中心差值(|xm-d|<α*|xm|),正常數(shù)據(jù)不處理;若聚類中心差值(|xm-d|>5α*|xm|),剔除數(shù)據(jù);若不符合這兩種情況,更新數(shù)據(jù),如下公式:d′=d-(d-xm)*α。最后,數(shù)據(jù)d′寫入以路段標(biāo)號為行標(biāo)的數(shù)據(jù)到分布式文件系統(tǒng)。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。