李洪烈, 夏 棟, 王 倩
(海軍航空大學青島校區(qū),山東 青島 266000)
數(shù)據(jù)的有效性及其質量是大數(shù)據(jù)處理的前提[1-3],數(shù)據(jù)清洗(即數(shù)據(jù)預處理)是大數(shù)據(jù)處理的一個重要環(huán)節(jié)[4]。數(shù)據(jù)清洗分析“臟數(shù)據(jù)”的產生原因和存在形式,通過清洗“臟數(shù)據(jù)”,將原有的不符合要求的數(shù)據(jù)轉化為滿足數(shù)據(jù)質量或應用要求的數(shù)據(jù),從而提高數(shù)據(jù)集的數(shù)據(jù)質量[5]。數(shù)據(jù)清洗包括不完整數(shù)據(jù)的清洗、錯誤數(shù)據(jù)的清洗和重復數(shù)據(jù)的清洗3個主要任務。而對于遙測和數(shù)據(jù)采集領域,錯誤數(shù)據(jù)清洗是數(shù)據(jù)清洗的主要任務。在遙測和數(shù)據(jù)采集領域,由于振動、溫度以及采集設備因素對采集電路的影響,會出現(xiàn)錯誤和異常的采集數(shù)據(jù)[6],被稱為孤立值、飛值、野值或者奇異值。采集數(shù)據(jù)中,野值的存在會使分析結果產生嚴重錯誤,因此對采集數(shù)據(jù)進行清洗的主要任務是對錯誤數(shù)據(jù)(即飛值或野值)的清洗。
本文將研究在大規(guī)模采集中的野值清洗問題,即在海量的采集數(shù)據(jù)中對野值進行識別,并通過合適的算法給出野值對應位置的最優(yōu)估計值。首先提出了一種利用一定采集時間內相鄰采集數(shù)據(jù)(不包含當前數(shù)據(jù))的回歸值和采集參數(shù)變化率給出野值精細識別的方法,然后給出了基于回歸模型的數(shù)據(jù)清洗的完整處理流程,最后利用真實飛行采集數(shù)據(jù)對本文提出的清洗方法進行了驗證。
采集數(shù)據(jù)中出現(xiàn)明顯不同于其他數(shù)據(jù)的對象值時,該值被稱為野值或者孤立值,野值識別是大數(shù)據(jù)處理的一項重要內容,其重要性體現(xiàn)在以下方面[7]:1) 野值的存在對數(shù)據(jù)分析的結果會產生非常大的影響; 2) 某些情況下,野值可能是對應領域中感興趣或者有代表性的潛在知識,野值的深入挖掘分析有時能產生有意義的新知識。
當野值為錯誤數(shù)據(jù)時,還需要對野值的真實值進行估計[8-9]。對野值進行數(shù)據(jù)清洗的方法主要包括兩類[10-11]:1) 使用簡單規(guī)則庫(如業(yè)務特定規(guī)則、常識性規(guī)則等)檢測、修正數(shù)據(jù)的錯誤; 2) 分箱方法通過考察屬性值周圍的值來平滑屬性的值,屬性值被分布到一些等深或等寬的“箱”中,按照“箱”中屬性值的平均值或中值來替換“箱”中的屬性值。
簡單規(guī)則庫野值識別簡單、算法速度快,但是規(guī)則設置較為寬泛,容易造成部分野值沒有被識別出來。分箱識別野值要更準確,但是由于在分箱過程中箱內的內容也包含了野值本身,野值偏離真實值較大時會嚴重影響野值識別和估計的結果。圖1為分別采用簡單規(guī)則和分箱對某飛機航向原始采集數(shù)據(jù)進行野值識別的結果。
圖1 簡單規(guī)則和分箱野值識別效果Fig.1 Results of outliers’ identification based on simple rules and separated container
由圖1可以看出,在原始采集數(shù)據(jù)中存在4個野值。簡單規(guī)則識別出了超出航向角度范圍的2個野值,而對于航向范圍內的另外2個野值并沒有識別出來;分箱識別出了3個野值,但是有1個數(shù)據(jù)由于受到了臨近野值的影響,并沒有被識別出來。針對簡單規(guī)則和分箱的不足,本文將研究一種基于回歸模型的數(shù)據(jù)清洗方法。
對于采集數(shù)據(jù)而言,采集到的參數(shù)值隨時間變化,當前采集數(shù)值與前后數(shù)據(jù)必然有一定的相關性。當前采集值與前后數(shù)據(jù)相比既存在一定的變化,又必然會將變化速度限定在一定范圍內。因此,可以根據(jù)當前時刻采樣值與附近采樣值的偏離程度判斷其是否為野值?;诨貧w模型的野值識別方法以剔除潛在野值后一定時間窗口內采集數(shù)據(jù)作為參考,對當前采集值是否為野值做出判定。
野值長度Lerr指數(shù)據(jù)采集中可能連續(xù)出現(xiàn)野值的個數(shù),參考寬度Lc指對參數(shù)野值做出判斷時使用的附近參考數(shù)據(jù)的個數(shù)。單獨設置野值長度和參考寬度的目的是將可能為野值的數(shù)據(jù)從采集數(shù)據(jù)中剝離,使其不會影響野值的判決過程。野值長度和參考寬度如圖2所示,x(k)表示參數(shù)的第k個采集數(shù)據(jù),M表示最遠的參考數(shù)據(jù)到x(k)的距離。
圖2 野值長度和參考寬度示意圖Fig.2 Diagram of outliers’ length and referenced data width
野值長度Lerr與采集設備工作頻率fs及野值持續(xù)時間terr有關,即
Lerr=fs·terr
(1)
該值既不能太大也不能太小,太大會減弱附近數(shù)據(jù)的關聯(lián)性,太小則容易影響參考結果,應當根據(jù)參數(shù)采集實際情況進行理論分析并由工程經驗得到。對于野值不連續(xù)出現(xiàn)的情況,Lerr=1。
參考寬度Lc指對參數(shù)野值做出判斷時使用的附近參考采集數(shù)據(jù)的個數(shù),該值通常可以取為野值長度Lerr的5~10倍。同樣,該值也不能取得太大或者太小,太大容易造成對參數(shù)值變化過于敏感而將正確值判為野值,太小則不容易識別出野值。
(2)
(3)
式中,ρ為當前識別位置與參考數(shù)據(jù)位置的最小偏移量,計算方法為ρ=?Lerr/2」,?·」為向下取整運算符。
偏離范圍指采集參數(shù)當前采集時刻的值可能偏離附近值的大小范圍,與采集頻率、當前時刻偏離參考范圍的距離以及采集參數(shù)隨時間的變化速度有關,其計算方法為
Rx(k)=1/fs·(Lc+Lerr)/2·Vmax
(4)
式中,Vmax為參數(shù)最大變化速度。
(5)
(6)
(7)
(8)
對野值進行識別時可能出現(xiàn)兩種錯誤的判斷:1) 將正常數(shù)據(jù)判為野值,稱為誤判;2) 將野值判為正常數(shù)據(jù),稱為漏判?;诨貧w模型的精細野值識別能夠有效降低誤判率和漏判率,將誤判率和漏判率降低到野值出現(xiàn)概率的10-5以下。
數(shù)據(jù)清洗除了需要對野值進行識別外,還需要對其正確值進行估計?;诨貧w模型的數(shù)據(jù)清洗處理流程如圖3所示。為了提高野值識別效率,增加了基于簡單規(guī)則的識別環(huán)節(jié),具體步驟包括野值粗識別、野值精細識別、野值回歸估計3個環(huán)節(jié)。
圖3 采集數(shù)據(jù)清洗處理流程Fig.3 Process flow of sampled data cleaning
基于回歸模型的精細野值識別計算復雜,為了提高野值識別的效率,首先通過簡單規(guī)則識別出明顯錯誤、異常的野值。具體識別方法為:根據(jù)所采集參數(shù)的性質和常識,設定一個粗略的閾值范圍(xmin,xmax),如果采集到的參數(shù)值x(k)超出該閾值范圍,即x(k)
經過基于寬規(guī)則的閾值粗識別后,明顯錯誤的野值數(shù)據(jù)被鑒別出來,但是仍然存在著部分比較隱蔽的野值數(shù)據(jù)沒有被處理。為了鑒別出所有的野值數(shù)據(jù),可進一步進行基于回歸模型的精細野值識別。具體詳見第2章,在此不再贅述。
(9)
(10)
為了驗證基于回歸模型數(shù)據(jù)清洗的有效性,按照本文方法對實際采集的一組飛機地速數(shù)據(jù)進行數(shù)據(jù)清洗處理。未經清洗處理的原始采集數(shù)據(jù)如圖4所示,由圖中可以看出存在多個野值。
圖4 未經處理的原始采集數(shù)據(jù)Fig.4 Unprocessed raw sampled data
數(shù)據(jù)采集飛機的最大飛行速度極限為1.5倍音速(1836 km/h),因此,基于寬規(guī)則粗識別的飛行速度的閾值范圍為0~1836 km/h。圖4中飛機地速原始數(shù)據(jù)經過閾值為0~1836 km/h的粗識別所得結果如圖5中方框標注所示,可知有2個野值被識別出來,但是仍然有未被識別出的野值存在。野值長度取Lerr=1、參考寬度取Lc=5,再經過基于回歸精細模型的精細識別后,被識別出的野值如圖5中箭頭標注所示。
圖5 閾值粗識別和回歸精細識別下的地速野值Fig.5 Outliers of ground speed based on coarseand regression-model fine identification
根據(jù)兩次野值識別的結果和3.3節(jié)的估計算法,圖4中原始數(shù)據(jù)經過清洗后的結果如圖6所示。
圖6 清洗處理后的地速數(shù)據(jù)Fig.6 Ground speed data after being cleaned
由圖6可以看出,清洗處理后的數(shù)據(jù)隨時間平滑變化,原始采集數(shù)據(jù)中的野值被正確地識別和剔除,并進行了合理的估算。
本文采用閾值粗識別結合回歸模型精細識別實現(xiàn)了大數(shù)據(jù)處理中的數(shù)據(jù)清洗,對于明顯的野值采用閾值粗識別提高識別效率,對于不易發(fā)現(xiàn)的野值采用基于回歸模型的精細識別方法,避免了潛在野值對識別判決的影響,提高了野值的識別精確度,同時采用回歸平滑算法保證了野值估計的準確性。