李紅梅 唐嵐
【關鍵詞】交通流 Python 數據清洗
1 引言
隨著交通檢測技術和智能交通系統的發展,交通管理者能夠獲得海量的交通數據。但是現實中,往往由于各種因素如環境、道路突發事件、采集設備故障等導致采集的數據存在缺失、異常、冗余等現象,這會降低智能交通系統分析和誘導能力。因此,如何將獲取“臟數據”進行科學合理的清洗是各國學者亟待解決的問題。
2 交通原始數據的選取
本文中使用的數據為四川省某市2014年8月6日的交通流數據,這個數據中有很多路段信息,并且數據采集設備的采集數據周期為5min,相應的信息可以從圖1中看出。
每條交通數據都有唯一的VID_LANE_ID號與之對應。而VID_LANE_ID前四位指代某路段的某一具體設備。TRAFFICDATA代表采集數據的時間。DIRECTION為方向編碼,代表車輛行駛的方向,TRAFFICDATA_ID記錄時間間隔為5分鐘,這個時間段非常適合數據分析與預測建模。對于VOL為該路段在5分鐘內所經過的車輛總數;SPEED為在觀測時間內所有車輛的速度平均值;OCC為占有率,指檢測時間周期內有車輛經過的時間總和與檢測總時間的之比(本文采集數據OCC省略了百分數)。
3 交通流數據清洗
采集到的真實的交通流數據往往會由于諸如信息傳輸、設備自身故障、突發交通事故等因素影響會導致其包含有真實數據和不真實的數據。為了使數據分析或者數據預測工作具有科學性和可靠性,往往不能直接使用這些“臟數據”,在這之前需要對這些采集到的原始的交通流數據進行降低甚至消除噪聲、簡約冗余數據、對異常錯誤數據進行修正、對缺失數據進行填補等工作,用以提高數據質量,通常稱這一過程為數據清洗。
一般說來,臟數據主要存在異常、缺失和冗余這三類。
3.1 異常數據的判斷與處理
本文異常數據的剔除算法分為兩個步驟,第一步是采用閾值法去掉比較明顯的錯誤數據;第二步是采用交通機理法去掉在數據中隱藏的錯誤數據。閾值法要求數據取值在一定的區域范圍之內,如果相應的區間內數據超出了這個區域,那么就表示相應的數據為錯誤數據,需要對其進行清洗。也就是說,根據采集到的數據的歷史統計規律、設定相應的數據閾值,對待處理數據進行上下閾值比較,在這區間的為正常數據,不在此區間的為異常數據。通常會將交通流數據的特征參數聯合起來進行綜合判斷。通過對數據的研究分析,發現所采集到的數據存在很多異常數據,如速度為零,流量卻不為零;流量不為零,占有率卻為零等。根據城市道路交通機理知識,交通流數據中的參數數據應該是同有同無,也就是說不可能三者中有某一個或幾個為零,其余參數數據不為零的情況。這就是進行數據邏輯判斷的準則,用以剔除錯誤的數據。
因此,異常數據的邏輯判斷和處理準則為:
(1)當流量VOL大于2000輛/h時,流量為異常數據,剔除;
(2)當速度SPEED大于100km/h時,速度為異常數據,剔除;
(3)流量、速度、占有率、車頭時距都為零時,剔除。
3.2 缺失數據的處理
數據缺失可能是由多種原因造成的,那么其表現出的形態也有多種,所以在進行缺失數據處理之前要遍歷在一定時間內某路段的所有數據。在這過程中發現某時刻沒有數據,則稱這種現象為數據缺失。在補齊數據的過程中需遵循以下兩條原則:首先要保證原始數據的完整,及對于原始數據最大限度不作修改和刪除,以保證有足夠充足的歷史數據可作為修補數據的基礎,并且此文檔應單獨完整存儲,方便后續的檢測和使用,缺失數據的處理在異常數據剔除之后,在異常數據處理后存儲為剔除異常后的數據文檔,缺失數據則基于此文檔,修改過后另外保存。其次是對于缺失數據修補的方法和過程應用文檔獨立記載,這將有利于后續的檢查工作并且為數據的取舍提供基礎,也提高了數據處理的透明性。因為交通流缺失數據和已有的數據存在著一定的能夠確定的關聯關系。
3.3 冗余數據的簡約
在正常的交通流數據應該是一條記錄對應一條完整的檢測信息,但是在現實中,由于設備布置、調試等原因,使采集到的數據集可能存在冗余問題。冗余的交通數據會增大交通流數據容量,掩蓋關鍵信息,甚至可能會誘導錯誤的分析和預測。所以,預測分析前要簡約冗余數據。簡約方法主要有:如果冗余的多條數據相似則取平均值,若數據都相同則只取一條。
4 結語
對某市交通流數據清洗后進行流通統計如圖2所示。
從圖2中可以看出,某市整體交通流量從早上6點開始向上攀升,到早上8點到達最高峰,然后緩慢下降,持續到上午11點,這與人們出行的早高峰相吻合。晚上5點到達最高,然后緩慢下降,與晚高峰出行吻合。
參考文獻
[1]馬壽峰,賀國光,劉豹.智能交通系統中短時交通流預測系統的研究預測[J].2004,23(2): 28-34.
[2]魏強.基于固定檢測器的區域交通狀態判別方法研究[D].吉林:吉林大學.2011.
[3]宮曉燕.基于數據挖掘的交通流預測及輔助誘導[D].北京:中國科學院自動化研究所,2003.