(重慶交通大學(xué) 重慶 400074)
數(shù)據(jù)清洗是整個數(shù)據(jù)分析與挖掘過程中必不可少的一個環(huán)節(jié),其結(jié)果會直接影響到模型效果和最終的結(jié)論,據(jù)大數(shù)據(jù)分析與挖掘項目統(tǒng)計,數(shù)據(jù)清洗通常會占據(jù)分析與挖掘過程的50%~80%的時間。
本文針對RFID冗余數(shù)據(jù),提出了一種處理冗余數(shù)據(jù)的方法,提高RFID數(shù)據(jù)的時序性和精確性。RFID冗余數(shù)據(jù)通常包括兩類:重復(fù)數(shù)據(jù)和相似數(shù)據(jù)。重復(fù)數(shù)據(jù)是指采集到的信息完全相同的數(shù)據(jù)。相似數(shù)據(jù)是指雖然數(shù)據(jù)有部分信息不同,但所指向的內(nèi)容是相同信息的數(shù)據(jù)。這兩種數(shù)據(jù)存在不僅僅占用存儲空間,造成數(shù)據(jù)庫負載越來越龐大,而且還會導(dǎo)致后期在處理數(shù)據(jù)挖掘方面,出現(xiàn)大幅度的偏差。因此,有必要對RFID冗余數(shù)據(jù)進行判別與刪除,提高數(shù)據(jù)的質(zhì)量。
判斷RFID數(shù)據(jù)是否存在冗余,根據(jù)冗余RFID數(shù)據(jù)存在的特征,關(guān)鍵是判斷被檢測到車牌號碼、過車時間和RFID檢測基站。當在采集到的RFID的數(shù)據(jù)中,車牌號碼、過車時間和RFID檢測基站完全相同,即可認為這些數(shù)據(jù)為重復(fù)數(shù)據(jù),有必要對這些數(shù)據(jù)進行刪除。而當采集到RFID數(shù)據(jù)中車牌號碼和檢測基站相同,過車時間雖不相同,但過車時間相差較短。因為通常同一輛車不可能在很短的時間內(nèi)(五分鐘內(nèi))兩次或者多次通過同一個檢測基站,而且RFID檢測基站在讀取數(shù)據(jù)時也需要花費一定的時間,采集的數(shù)據(jù)必定會產(chǎn)生一定的時間差,則認為這些數(shù)據(jù)為相似數(shù)據(jù)。因此相似數(shù)據(jù)也為冗余數(shù)據(jù),也有必要對其刪除。
本文在處理冗余數(shù)據(jù)時,采用逐條記錄對比的方法,對RFID數(shù)據(jù)進行逐條對比車牌號碼、過車時間和RFID檢測基站。采用Java程序編寫的代碼實現(xiàn)冗余數(shù)據(jù)的判別。主要是對數(shù)據(jù)記錄進行按照以下步驟進行邏輯判別:
(1)通過jdbc連接數(shù)據(jù)庫,將數(shù)據(jù)庫中的數(shù)據(jù)按照車牌號碼、RFID檢測站和過車時間字段順序進行數(shù)據(jù)排序;
(2)讀取第一條數(shù)據(jù),獲取數(shù)據(jù)記錄中車牌號碼(VehicleID1)、RFID檢測站名稱(C_P_Name1)和(Time1);
(3)循環(huán)讀取下一條數(shù)據(jù),獲取數(shù)據(jù)記錄中的車牌號碼(VehicleID2)、RFID檢測站名稱(C_P_Name2)和(Time2);
(4)判斷車牌號碼VehicleID1是否等于VehicleID2、RFID檢測站名稱C_P_Name1是否等于C_P_Name2和過車時間Time1是否等于Time2,若三者全部相等,即為相同數(shù)據(jù)。若前兩者相等,對時間Time2與Time1時間作差,判斷兩者的時間差是否在5min時間內(nèi),若在5min時間內(nèi),可以認為這兩條數(shù)據(jù)為相似數(shù)據(jù)。將相同數(shù)據(jù)和相似數(shù)據(jù)進行輸出到兩個不同的表中。
(5)將車牌號碼、RFID檢測基站名稱和過車時間進行替換,進入(3)進行循環(huán)。
通過以上邏輯過程對RFID交通數(shù)據(jù)進行冗余判斷,可以獲取出數(shù)據(jù)記錄中的冗余數(shù)據(jù)。通過獲取每天的冗余數(shù)據(jù),統(tǒng)計每天的冗余數(shù)據(jù)量記為,采用下列公式計算每天檢測數(shù)據(jù)的冗余率:
(1)
ωi——冗余數(shù)據(jù)占有率;
ERundei——第i天的冗余數(shù)據(jù)記錄總條數(shù)。
Ni——第i天的記錄刪除錯誤數(shù)據(jù)后的總條數(shù);
在把錯誤數(shù)據(jù)刪除之后,再獲取數(shù)據(jù)記錄中的重復(fù)數(shù)據(jù),通過聯(lián)合車牌號碼、檢測點名稱和檢測時間判斷記錄中的數(shù)據(jù)是否存在重復(fù)。根據(jù)RFID檢測器的數(shù)據(jù)規(guī)律特性,相同車輛在同一地點相似時間(5min)段內(nèi)只會出現(xiàn)一條數(shù)據(jù)。本文首先對HDFS上每天的數(shù)據(jù)記錄按照車牌號碼、檢測點名稱和檢測到的時間進行排序。在得到的排序結(jié)果后,判斷每一條數(shù)據(jù)中的車牌與下一條數(shù)據(jù)中的車牌是否相同。在相同的車牌號碼的情況下,再去判斷檢測點名稱是否相同。在檢測點名稱相同的情況下,判斷兩條記錄的時間差是否大于5min。在Hadoop平臺中通過Java編寫代碼一步步循環(huán)判斷,可以獲取每天記錄中冗余的數(shù)據(jù)。其實驗過程通過編寫代碼實現(xiàn)。
通過判斷每天數(shù)據(jù)中的冗余數(shù)據(jù),計算出每天RFID檢測數(shù)據(jù)的冗余率,可以作出冗余數(shù)據(jù)占每天正確數(shù)據(jù)的比率變化趨勢圖,如圖1所示。
圖1 冗余數(shù)據(jù)占有率變化趨勢
通過對一個月冗余數(shù)據(jù)的占有率對比分析,可以看出冗余的數(shù)據(jù)在所占正確數(shù)據(jù)的比例比較小,約占1.40%。故在挖掘交通特性時,為了提高數(shù)據(jù)的總體精確性,對冗余數(shù)據(jù)可以保留第一條后,將其他的記錄直接刪除。
經(jīng)過本文逐條數(shù)據(jù)篩選的方法對冗余數(shù)據(jù)進行處理判斷,可以提高數(shù)據(jù)的精確性,本文在對RFID數(shù)據(jù)冗余判斷,可以提高1.4%的精度,同時對后期的數(shù)據(jù)挖掘精度也有了較大的提高。
【參考文獻】
[1]谷峪,李曉靜,呂雁飛.基于RFID應(yīng)用的綜合性數(shù)據(jù)清洗策略[J].東北大學(xué)學(xué)報(自然科學(xué)版).2009,30(1):34-37.
[2]王妍,石鑫,宋寶燕.基于偽事件的RFID數(shù)據(jù)清洗方法.計算機研究與發(fā)展[J].2009,46(suppl):270-274.
[3]周奕辛.數(shù)據(jù)清洗算法的研究與應(yīng)用[D].山東:青島大學(xué),2005.
[4]僧理.Hadoop的重復(fù)數(shù)據(jù)清理模型研究與實現(xiàn)[D].湖南:南華大學(xué),2010.