胡 萍,崔建濤
(1. 銅仁學院大數據學院,貴州 銅仁 554300;2. 鄭州輕工業大學軟件學院,河南 鄭州 450001)
信息技術與傳感技術的進步使各行業的數據高速增長,這些數據中包含大量有價值的信息,通過數據挖掘等手段能夠發現并利用這些信息。但由于數據量龐大,其中會摻雜一些異常數據,這些異常數據中既有缺失數據,也包括離群點、噪聲數據等。噪聲數據對于有價值信息而言,不僅會降低數據流的整體質量,還會影響數據挖掘效果,導致對信息出現錯誤判斷。
含噪聲數據檢測就是在眾多數據中識別出不同于其它數據的過程。在大數據背景下,該技術在金融、軍事、醫療等領域都有廣泛應用。但隨著數據維度和復雜度的提高,噪聲數據檢測也面臨嚴峻挑戰?,F有的檢測技術通常對數據質量和噪聲類型有著較高要求,并不是對所有噪聲數據都具有很好的檢測效果。再加上數據的高度復雜特征,噪聲數據檢測已經成為一個難點,相關技術人員也對此展開大量研究。
例如,文獻[1]利用改進支持向量數據描述方法檢測出噪聲數據。通過馬氏距離修正高斯窗函數,減少檢測過程中的干擾因素,采用高斯窗函數計算數據的分布密度,根據隸屬度函數對改進支持向量數據描述方法做密度補償,提高檢測精度。文獻[2]提出基于局部向量點積密度的噪聲檢測方法。利用向量點積密度策略對數據點做增量計算,設置不同優化方法和減枝規則,降低檢測復雜度,減少算法開銷,計算各數據點之間的距離,通過距離判斷出噪聲點。
但是上述方法并沒有分析數據是否完整,導致檢測的誤報率和漏報率較高[3]。為此,本文提出基于中值濾波的含噪聲數據檢測方法。針對初始數據進行預處理,擬合失落數據點,并通過異常數據評分的方式提取出異常數據,再利用中值濾波算法從這些數據中檢測出噪聲數據。中值濾波就是將數據流中某數據的值利用其它數據點的中值代替,計算簡便且抗干擾性較強[4]。實驗結果表明,該方法提高檢測精度,降低漏報率。
隨著網絡與傳感器技術的快速發展,產生了大量實時變化的數據。這些數據來自網絡管理、證券交易、電力系統、實時傳感器等各個方面[5]。這些數據的大量生成和頻繁變化導致數據具有一定突發性。在數據庫中,數據的儲存介質比較穩定,管理系統能夠實時提交用戶的各類操作。數據流模型屬于一種實時、連續、無界的序列。
假設利用t代表某時間戳,ai是該時間段內生成的數據,則數據流描述為{…,ai-1,ai,ai+1,…}。和傳統數據模型相比,數據流模型具有如下特點:
1)數據生成具有實時連續性;
2)數據生成順序不會受到系統因素制約;
3)數據量大,難以預測出最大值。
綜上所述,對于數據流而言,無法儲存整個數據集合,只能通過維護來保證數據結構滿足儲存要求。
根據數據流模型特征,總結噪聲數據主要來自以下方面:
1)傳輸錯誤:數據傳輸時,特別在無線傳輸過程中,容易發生數據缺失、漏傳等現象,導致傳輸錯誤;
2)采集錯誤:不同數據的采集裝置不同,采集系統的集成度較高,數據容易出現誤差,此種情況是不能避免的,因為數據流作為一個整體,不能將噪聲數據分離出來;
3)離散錯誤[6]:離散過程能夠簡化數據結構,方便分析。但是該過程會將某連續變量劃分在離散區間上,需要通過離散值來估計連續值,這樣就導致了離散方面的誤差;
4)干擾錯誤:一些隱私信息通常會添加人為干擾,確保這些數據不被輕易挖掘。所以,在獲取信息時容易發生干擾錯誤。
雖然噪聲數據屬于異常數據,但并不是所有異常數據都是無用的,有些數據只是屬性值或標簽發生錯誤,而并非沒有價值。因此,必須對初始數據做預處理,補全缺失值,確定異常數據,縮小檢測范圍以此提高檢測效果。
在數據流中,會存在一些缺失的數據點,會影響噪聲檢測的質量,容易出現漏檢現象。針對這一問題,本文利用最小二乘擬合算法[7],經過失落點擬合,準確預估出該點的信息值。
選取直線擬合方式補全缺失數據,假設數據x與y之間存在如下關系:
y=b0+b1x
(1)
式中,b0與b1分別代表截距與斜率。
針對采集到的N組數據(xi,yi)i=1,2,…,N,利用最小二乘算法將該組數據擬合成一條直線,補足缺失點。當利用該方法完成參數估計時,需要保證yi的加權平方和最小[8]。
針對b0和b1求導,同時令b0、b1等于0。則能夠獲得b0、b1的最優預測值0、1:
(2)
(3)
結合計算得出的b0與b1值,即可實現缺失點補足。
異常程度初始評分的目的是用于確定一個數據集合是否為正常的,這說明評分過程會更加關注正常數據,也就是給正常數據賦予更低的異常評分[9]。
(4)
(5)
(6)
經過上述預處理,補全了數據流中的缺失值,同時篩選出異常數據,減少含噪聲數據檢測的工作量,提高檢測精度[10]。
中值濾波能夠避免線性濾波器造成的模糊現象[11],對濾除噪聲干擾十分有效。中值濾波最方便的處理方法就是通過某個條形移動窗口在數據上進行滑動[12],進而確定出中值。
Yj=Med{xj-v…xj…,xj+v}
(7)
例如,針對某次測量工作連續完成五次采樣,將獲得的數據保存在數列{Sj}(j=5)中,結合采樣時間,數據的排列順序為{S1,S2,S3,S4,S5};再將該序列中的數值根據大小重新排序為:S4>S1>S3>S5>S2。
重新排序后{Sj}(j=5)的中值即為S3,則S3就是濾波輸出。當滑動窗口H分別為奇數和偶數時,計算公式如下:
(8)
中值選擇過程可通過圖1描述。
圖1 中值確定過程圖
綜合上述滑動窗口模型的特征,隨著時間推移數據會持續生成,保存的數據會越來越多,為了快速預測數據流中的未來元素,難以將全部元素當做歷史數據。因此,利用預測窗口方法[13],設定預測窗口如下:
Dt={xi-q,xi-q+1,…,xq}
(9)
公式中,q代表預測窗口尺寸,通常情況下,該尺寸小于滑動窗口,結合預測窗口的數據,估計xi+1的平均值與置信區間。
因數據流具有數量大、實時變化的特點,為提高檢測效率,構建如下基于中值濾波算法的含噪聲數據檢測框架[14],主要步驟描述為:
步驟二:通過概率P運算數據在t+1時段內數值波動區間,計算公式如下:
(10)
(11)
(12)
步驟三:當數據全部生成時,與步驟二設定的區間進行對比,若高于預測區間,則說明數據為噪聲數據,反之為正常數據;
步驟四:如果檢測的數據為噪聲數據,則及時更新預測窗口;
步驟五:反復操作上述步驟,即可完成含噪聲數據檢測。
本文將在某傳感器數據集上完成相關實驗,該數據集共分為12組,其中訓練集9組,測試集合3組,每組數據都包括正類與負類樣本。所有數據集都會按照由小到大的比例進行標簽翻轉,以此模擬實際應用中的噪聲數據。仿真平臺如圖2所示。
圖2 仿真平臺結構示意圖
1)數據預處理效果測試
預處理效果直接影響后續的檢測效果,以傳感器數據集合中的位置數據為例,利用本文失落數據點擬合算法對缺失數據做擬合處理,處理前、后的數據如圖3和4所示。
圖3 擬合前數據效果圖
圖3中的空白部分為傳感器缺失數據值,圖4為利用最小二乘擬合法擬合后的數據,由此可知經過本文方法處理后補齊了輪廓線,減少失落信息點,為含噪數據檢測打下良好基礎,能夠有效降低漏檢率。
圖4 擬合后數據效果圖
2)含噪聲數據檢測效果測試
以上述實時傳感數據為例,分別利用本文方法、改進支持向量描述算法、局部向量點積密度算法進行含噪聲數據檢測,檢測結果如圖5所示。
圖5 不同方法的含噪聲數據檢測結果示意圖
分析圖5可知,本文方法能夠將實時傳感數據中的噪聲數據全部檢測出來,而改進支持向量描述方法出現了漏檢現象,有個別噪聲數據沒有被檢測出來;局部向量點積密度法還出現誤檢情況,有些正常數據被檢測為噪聲數據。整體來看,本文方法對噪聲數據的檢測最為準確,這是因為經過失落點擬合和初始異常數據評分等過程有效提高了檢測精度。
上述測試只針對實時傳感數據,在實際應用中還有很多類型的數據。為了證明所提方法的實用性,分別選用網絡管理數據、證券交易數據、電力數據等進行測試,并將召回率與F1值作為評價指標,計算公式如下。并繪制三種算法對于這些數據的檢測箱型圖,如圖6和7所示。
圖6 不同方法F1值測試結果對比圖
圖7 不同算法Recall值測試結果對比圖
(13)
(14)
式中,TP代表正常數據被認為是正常的分類,FN代表正常數據被認為是噪聲數據的錯誤分類。Precision代表準確率。計算公式分別如下:
(15)
式中,FP代表噪聲數據被認為是正常數據的錯誤分類,TN代表噪聲數據被認為是噪聲數據的正確分類。
如圖6和7所示的箱型圖不僅能夠反映不同方法對于不同數據集的整體檢測精度,還能體現出算法的穩定性。箱體內的線段代表含噪聲檢測方法在不同數據集中的F1值和召回率的中位數,箱體描述所有實驗結果的數值分布區間,箱體越短說明測試結果越集中。
由此可以看出,本文方法的F1值明顯高于其它方法,同時沒有受到噪聲數據多少的影響,始終保持在較高水平,說明所提方法的誤報率低且準確率高,而其它方法的F1值均隨噪聲含量的增多出現明顯下降趨勢。此外,中值濾波算法的召回率比其它方法低,意味著該方法更加可靠,能夠學習到噪聲數據的更多特征;且所提方法的整體箱型較短,說明測試數值較為集中,方法檢測性能更加穩定。
在各領域數據量急劇增長背景下,數據結構變得更加復雜,且其中會摻雜很多噪聲數據。因此,本文利用中值濾波算法對噪聲數據檢測展開深入研究。通過失落點擬合和初始數據異常評分等過程對數據做預處理,確定出異常數據,針對這些異常數據,利用中值濾波算法構建含噪聲數據檢測架構,進一步檢測出噪聲數據。實驗結果表明,所提方法有效解決了噪聲干擾問題,為數據分析提供更高質量的數據?,F階段,大部分數據都是實時的,所以實時檢測技術更加符合數據處理需求,在今后研究中應完成從靜態數據到動態數據的完全跨越,不斷提高含噪聲數據檢測的實用性。