蔣 華,羅一迪,王慧嬌,王 鑫
(桂林電子科技大學(xué) 計算機與信息安全學(xué)院,廣西 桂林 541004)
Argo浮標容易受到環(huán)境的影響,尤其是鹽度傳感器易受到生物污染等因素的影響,使得獲取到的剖面數(shù)據(jù)會產(chǎn)生誤差。而且Argo浮標自身具有拋棄式和隨著洋流漂移的特點,無法對傳感器進行回收校正,所以很難得知傳感器產(chǎn)生誤差的原因,使得其數(shù)據(jù)準確度難以判斷。因此,為了避免數(shù)據(jù)錯誤,為后期分析海洋數(shù)據(jù)提供高質(zhì)量的數(shù)據(jù)集,對于Argo剖面數(shù)據(jù)進行異常檢測是十分必要的。
異常檢測在很多領(lǐng)域都得到了應(yīng)用。如水文[1]、網(wǎng)絡(luò)流量[2]、智能電網(wǎng)[3]、信號[4]、飛機發(fā)動機數(shù)據(jù)[5]等領(lǐng)域。為了提高Argo剖面數(shù)據(jù)的數(shù)據(jù)質(zhì)量,國內(nèi)外學(xué)者們也做了相關(guān)的研究工作。目前主要應(yīng)用的是“三倍標準差”與傳統(tǒng)閾值判定相結(jié)合的方法[6]和溫鹽關(guān)系模型[7]。
由于Argo剖面數(shù)據(jù)具有非線性的特點,采用K主曲線可以很好地擬合Argo剖面數(shù)據(jù),而溫鹽關(guān)系模型可以有效利用歷史剖面數(shù)據(jù)。因此,本文采用K主曲線與溫鹽關(guān)系模型相結(jié)合的方法實現(xiàn)對于Argo溫鹽剖面數(shù)據(jù)的異常檢測,并且有較高的檢測精度和可靠性。
主曲線是通過尋找通過數(shù)據(jù)分布的“中間”并滿足“自相合”的光滑一維曲線,可以很好地描述非線性數(shù)據(jù)的特征。當(dāng)前,主曲線算法在不同領(lǐng)域得到了應(yīng)用,如信息融合[8],異常檢測[9],數(shù)據(jù)預(yù)測[10],GPS河岸線的提取[11]等。
設(shè)一個樣本集合Xn={x1,x2,…,xn}?Rd,K主曲線生成算法的基本思想是:取第一主成分線上作為初始曲線f0,n,然后執(zhí)行迭代算法,在第k次迭代時,在曲線fk-1,n的基礎(chǔ)上增加一個新的頂點,然后在內(nèi)循環(huán)中反復(fù)執(zhí)行投影和期望兩個步驟,直至滿足收斂條件得到新的曲線fk,n。K主曲線生成算法流程如圖1所示。
圖1 K主曲線生成算法流程
溫鹽關(guān)系模型是一種氣候?qū)W模型,由于溫度和鹽度是Argo浮標測量中兩個重要的元素,而且兩個屬性相對獨立,溫度測量精確,因此通過建立溫鹽關(guān)系模型,在已知溫度數(shù)據(jù)的條件下,能夠預(yù)測出該剖面的鹽度狀況。溫鹽關(guān)系模型[7]建立過程如下:
首先將溫度(tem)數(shù)據(jù)和鹽度(sal)數(shù)據(jù)映射到同一個T-S二維坐標上。其中橫坐標tem為自變量,縱坐標sal為因變量。擬合坐標點獲得鹽度(sal)的期望曲線f
sal=f(tem)
(1)
對于所有位于曲線外的溫度、鹽度數(shù)據(jù)點(temp,salp),計算這些鹽度salp與在該溫度temp下鹽度的期望值f(temp)的偏移量Δsalp
Δsalp=salp-f(temp)
(2)
再次擬合偏移點獲得鹽度偏移的期望曲線v
(3)
則對于每一個溫度觀測值temp,對應(yīng)的鹽度上界曲線方程和下界曲線方程分別為
salup=f(temp)+a1×vup(temp)
(4)
saldown=f(temp)-a2×vdown(temp)
(5)
其中,ai是權(quán)重系數(shù)。圖2為建立的溫鹽關(guān)系模型。
圖2 溫鹽關(guān)系模型
由于Argo浮標剖面數(shù)據(jù)是離散型數(shù)據(jù),且是非線性分布,所以無法進行方程描述,而K主曲線可以很好地描述非線性數(shù)據(jù)的特征。因此本文提出K主曲線與溫鹽關(guān)系模型相結(jié)合的方法,實現(xiàn)溫鹽剖面的異常檢測。該方法首先利用K主曲線擬合Argo溫鹽剖面數(shù)據(jù)生成溫鹽主剖面,然后以溫鹽主剖面為基礎(chǔ)生成溫鹽關(guān)系模型,最后利用溫鹽關(guān)系模型預(yù)測不同溫度下的鹽度的上下界,最后通過判斷鹽度觀測值是否在閾值區(qū)間內(nèi)來判定溫鹽剖面是否為異常剖面點。具體方法如圖3所示。
圖3 溫鹽剖面異常檢測方法
在本章中,首先介紹利用K主曲線理論擬合生成溫鹽主剖面的方法,然后在此基礎(chǔ)上建立溫鹽關(guān)系模型,最后利用該模型,實現(xiàn)溫鹽剖面的異常檢測。
由于海水的溫度、鹽度關(guān)系在不同的海域存在不同的關(guān)系,所以不能將全球海域所有的溫鹽數(shù)據(jù)做整體處理,需要將已有的Argo溫鹽剖面數(shù)據(jù)根據(jù)經(jīng)緯度進行劃分,在本文方法中,將溫鹽剖面數(shù)據(jù)集劃分為經(jīng)緯度3°×3°的網(wǎng)格,本方法是針對其中一個網(wǎng)格中的數(shù)據(jù)進行研究。
(1)在初始化階段,將溫鹽剖面數(shù)據(jù)集O利用最小二乘法進行線性擬合得到擬合線l0,取l0的兩端點p1、p2以及l(fā)0作為初始主剖面K0(P0,L0)。
(2)在投影步階段,依據(jù)最近鄰原則計算主剖面Ki-1中的點和線段的最近鄰分區(qū)D,最近鄰分區(qū)如圖4所示。
圖4為第m次迭代生成的主剖面Km(Pm,Lm)的最近鄰分區(qū)。
圖4 最近鄰分區(qū)
Km(Pm,Lm)包含k+1個點和k條線段,并將數(shù)據(jù)集劃分為2k+1個分區(qū),即
D={D1,D2,…,D2k+1}={P1,P2,…,Pk+1,L1,L2,…,Lk}
其中,最近鄰點分區(qū)Pi中的點為所有到點pi的歐式距離最小的點,可表示為
?on∈Pi∈O,ζ(on,pi)=Δ(on,Km)<ζ(on,pj),
j=1,2,…,i-1
(6)
其中,ζ(on,pi)表示點on與點pi之間的歐式距離,Δ(on,Km)=minψ(on,li)表示點on到主剖面Km的最短距離,ψ(on,li)表示點on到線段li的投影距離。
最近鄰線段分區(qū)Li中的點為所有到線段li的投影距離最短的點,可表示為
?on∈Li∈O,ψ(on,li)=Δ(on,Km)<ψ(on,lj),
j=1,2,…,i-1
(7)
(8)
Di的最大投影距離點omax為該分區(qū)中到主剖面Km的投影距離最大的點,可表示為
omax={oi∈Di:Δ(oi,Km)>Δ(oj,Km)},
j=1,2,…,i-1,i+1,…,n
(9)
生成Argo溫鹽主剖面,不僅能夠約簡溫鹽剖面數(shù)據(jù)集,而且能夠得到真實反映整體數(shù)據(jù)形態(tài)的曲線。在此基礎(chǔ)上,生成的溫鹽關(guān)系模型,具有更高的精確度和可靠性。
具體的Argo溫鹽關(guān)系模型生成方法如下:
輸入:Argo溫鹽剖面數(shù)據(jù)集O,溫鹽主剖面K(P,L)
輸出:鹽度上界salup,鹽度下界saldown
步驟4 若i 步驟5 求鹽度上偏移主剖面Vupp,l。 步驟6 求鹽度下偏移主剖面Vdownp,l。 步驟7 根據(jù)式(4)計算鹽度上界salup,輸出salup。 步驟8 根據(jù)式(5)計算鹽度下界saldown,輸出saldown。 對于Argo溫鹽剖面點的異常定義如下: 定義1 (異常剖面點):設(shè)待測剖面點為ot(temt,salt),若ot的鹽度值salt超出對應(yīng)的閾值tht范圍,則判斷ot為異常剖面點。否則,ot為正常剖面點。其中,tht?[thdownt,thupt],thupt和thdownt分別為依據(jù)溫鹽關(guān)系模型獲得的在溫度為temt的條件下的鹽度的上界u(temt)和下界d(temt)。 輸入待測剖面點ot(temt,salt),根據(jù)其溫度值temt,通過溫鹽關(guān)系模型得到鹽度上界u(temt)和鹽度下界d(temt),若待測剖面點ot的鹽度值salt滿足條件:(salt>d(temt))∧(salt 輸入:訓(xùn)練剖面點集Otrain=o1,o2,…,om,待測剖面點集Otest=ot1,ot2,…,otn。 步驟1 利用訓(xùn)練剖面點集Otrain生成溫鹽主剖面K(P,L)。 步驟2 生成Otrain的溫鹽關(guān)系模型。 步驟3 計算待測剖面點oti(temti,salti)的鹽度上界和下界,得到u(temti)和d(temti)。 步驟5 若i 圖5為基于K主曲線的Argo溫鹽剖面異常檢測方法執(zhí)行流程。 圖5 基于K主曲線的溫鹽關(guān)系模型異常檢測方法的流程 為了驗證本文提出的基于主曲線的Argo溫鹽剖面異常檢測方法的有效性,采用從中國Argo實時資料中心獲取的1997年7月至2016年10月的全球Argo浮標剖面數(shù)據(jù)進行實驗。本文方法所采用的實驗環(huán)境:CPU為Intel Core i3,2.3 GHZ,4 GB內(nèi)存,操作系統(tǒng)為Windows 7,開發(fā)工具為MyEclipse2016,編程語言為Java。實驗數(shù)據(jù)以.dat文件表示,所用的訓(xùn)練剖面點集為1997年7月至2015年12月的Argo剖面數(shù)據(jù),測試剖面點集為2016年1月至2016年10月的Argo剖面數(shù)據(jù)。 由于本實驗的主要研究對象是溫度與鹽度數(shù)據(jù),但是在不同的經(jīng)緯度下,鹽度的變化是有明顯的差別的,因此,在進行異常檢測時需按照不同的經(jīng)緯度進行分區(qū),本文方法將所有的數(shù)據(jù)按照經(jīng)緯度網(wǎng)格3°×3°進行劃分。從定義2可知,Argo剖面數(shù)據(jù)文件中包含著很多的信息,其中有大量的與本研究無關(guān)的冗余信息,因此,需要對于這些信息進行篩選,提取出有效信息以減少后續(xù)操作的數(shù)據(jù)量。本實驗所需要的數(shù)據(jù)包括溫度(tem)和鹽度(sal),在預(yù)處理階段,需將這些信息提取出來。 通過預(yù)處理,獲得了3°×3°經(jīng)緯度網(wǎng)格中的剖面點分布。如圖6所示,為訓(xùn)練剖面點集中位于18°N~21°N,114°E~117°E經(jīng)緯度網(wǎng)格中的51,186個溫鹽剖面數(shù)據(jù)點。其中,橫坐標為溫度值,縱坐標為鹽度值。 圖6 18°N~21°N,114°E~117°E網(wǎng)格溫鹽剖面點分布 經(jīng)過預(yù)處理后,獲得了只有溫度和鹽度信息的原始剖面點。在模型建立階段,利用主剖面算法,經(jīng)過多次不同的投影閾值實驗,對比生成的主剖面的殘差均值,選擇殘差均值較小的剖面,因為殘差均值越小,說明算法的提取效果越好,可以更好地反映剖面數(shù)據(jù)特征。表1中表示了不同投影閾值下的執(zhí)行結(jié)果,由表1可知,投影閾值λ=0.02時,殘差均值過大,會造成剖面特征信息的丟失,而當(dāng)λ=0.06和λ=0.1時,殘差均值均未超過0.2,可以較好地反映剖面特征,因此,投影閾值可以選擇λ∈0.06,0.1,在本次實驗中,為了后續(xù)更好地進行異常檢測,選取λ=0.06時生成的主剖面。如圖7所示,為利用訓(xùn)練剖面點集,為λ=0.06時生成的主剖面。 表1 不同投影閾值結(jié)果 圖7 18°N~21°N,114°E~117°E分區(qū)內(nèi)溫鹽剖面生成的主剖面 在獲得溫鹽剖面數(shù)據(jù)的主剖面后,計算偏離主剖面的點的鹽度偏移量,再次利用主剖面算法,擬合剖面偏移點,經(jīng)過多次的投影閾值實驗,獲得上偏移主剖面和下偏移主剖面。選擇合適的權(quán)重系數(shù),計算獲得鹽度的上下界,最終生成溫鹽關(guān)系模型,如圖8所示。 圖8 18°N~21°N,114°E~117°E分區(qū)內(nèi)溫鹽關(guān)系模型 溫鹽關(guān)系模型的建立完成后,為檢驗其有效性,使用該模型檢測測試剖面點集,判斷該剖面點集中的異常剖面點。 表2是可能出現(xiàn)的不同的檢測結(jié)果。其中,TP表示正常被檢測為正常,TN表示異常被檢測為異常。上述兩種情況是異常檢測的理想情況。FP表示正常被檢測為異常,F(xiàn)N表示異常被檢測為正常,這兩種情況是在異常檢測中不希望出現(xiàn)的情況。根據(jù)表2所示,可以通過不同的量化指標從不同的角度對異常檢測結(jié)果進行分析。 表2 檢測結(jié)果分類 (10) (11) 從上述公式可知,靈敏度和特異度值越高,異常檢測的性能越好。 表3為不同參數(shù)下異常檢測的結(jié)果,當(dāng)選擇權(quán)重為(3.5,3)時,本文的異常檢測算法可以正確檢測出異常剖面點145個(TP=145),正常剖面點被正確判定出來的剖面點有1631個(TN=1631),但是有61個正常剖面點被錯誤的判定為異常剖面點(FP=61),最后,還有43個異常剖面點沒有被檢測出(FN=43)。 表3 不同參數(shù)對異常檢測的結(jié)果對比 從表3可以看出,本文方法可以有效檢測出溫鹽剖面數(shù)據(jù)集中的異常剖面點,特異度達到89%以上,靈敏度也可以保持在65%以上。而且隨著權(quán)重的不斷增加,溫鹽關(guān)系模型的上下界范圍也越來越大,正常剖面點能夠更好地識別出來,使得異常檢測的特異度從89.54%增加到99.17%,但是有一些異常剖面點被誤判為正常剖面點,使得敏感度從74.46%降低到66.69%。因此,在選擇權(quán)重時要權(quán)衡敏感度和特異度,才能達到最佳的檢測效果。從表3可知,當(dāng)權(quán)重取(3.5,3)時,靈敏度最高為77.13%,可靠性可達到96.39%,異常檢測效果最好。 圖9是本文方法(基于K主曲線的溫鹽關(guān)系模型)和原始溫鹽關(guān)系模型(基于最小二乘法擬合的溫鹽關(guān)系模型)以及實時質(zhì)量監(jiān)控方法和基于“三倍標準差”的方法對測試溫鹽剖面集的檢測效果ROC的對比。從圖7可以看出,實時質(zhì)量控制方法只是針對單一剖面點進行異常檢測,判斷標準過于片面,異常剖面點基本上都被誤判為正常剖面點,敏感度極低。基于“三倍標準差”的方法未能夠充分利用歷史剖面數(shù)據(jù),雖然相較于實時質(zhì)量控制方法敏感度有所提升,但是其檢測效果還是不理想。原始溫鹽關(guān)系模型充分利用歷史數(shù)據(jù),但是其擬合數(shù)據(jù)的方法是最小二乘法,因此未能十分好的反映數(shù)據(jù)特征,檢測效果一般。而本文方法,由于選用的是K主曲線描述數(shù)據(jù),可以很好地反映數(shù)據(jù)特征,建立的溫鹽關(guān)系模型精確度更高,因此ROC曲線在原始溫鹽關(guān)系模型之上,檢測效果最好。 圖9 不同方法下ROC對比 通過對不同參數(shù)檢測效果的比較以及與其它方法檢測效果的比較,本文方法結(jié)果穩(wěn)定,效果最佳,具有較強的實用性。 為了提高Argo浮標的數(shù)據(jù)質(zhì)量,本文提出了一種基于主曲線的Argo溫鹽剖面異常檢測方法。利用K主曲線理論獲取Argo溫鹽剖面的主剖面,在此基礎(chǔ)上建立溫鹽關(guān)系模型,并利用該模型實現(xiàn)了對于Argo溫鹽剖面數(shù)據(jù)的異常檢測。通過全球Argo實際觀測數(shù)據(jù)驗證了其具有較高的有效性和可靠性。在下一步工作中,將對整體剖面異常檢測進行深入研究,以提高Argo剖面數(shù)據(jù)的整體質(zhì)量。2.3 異常檢測方法實現(xiàn)
3 實驗結(jié)果與分析
3.1 數(shù)據(jù)預(yù)處理
3.2 異常檢測實驗
4 結(jié)束語
——工程地質(zhì)勘察中,一種做交叉剖面的新方法