仇 媛,常相茂*,仇 倩,彭 程,蘇善婷
(1.南京航空航天大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,南京211106; 2.河北工業(yè)大學(xué)人工智能與數(shù)據(jù)科學(xué)學(xué)院,天津300401)
(?通信作者電子郵箱xiangmaoch@nuaa.edu.cn)
隨著傳感器、監(jiān)視測量技術(shù)的廣泛應(yīng)用和網(wǎng)絡(luò)交易、安全監(jiān)控、電信管理等應(yīng)用的不斷發(fā)展,產(chǎn)生了大量高速實(shí)時數(shù)據(jù)的無界序列,稱為數(shù)據(jù)流。這些數(shù)據(jù)流中的數(shù)據(jù)被稱為流數(shù)據(jù)[1-2]。在對流數(shù)據(jù)的分析處理中,異常檢測一直是被廣大研究人員重點(diǎn)關(guān)注的領(lǐng)域,特別是工業(yè)設(shè)備的監(jiān)控、軍事項目管理或是網(wǎng)絡(luò)安全監(jiān)測等,如果異常沒有被及時發(fā)現(xiàn),更是可能會造成破壞性的后果[3]。現(xiàn)階段,流數(shù)據(jù)的大量增加也為數(shù)據(jù)的異常檢測提出了新的要求。
流數(shù)據(jù)通常數(shù)量巨大且生成迅速,因此要求針對它的異常檢測方法必須是實(shí)時的;其次,系統(tǒng)的統(tǒng)計數(shù)據(jù)可能會隨著時間的推移而發(fā)生變化,這種現(xiàn)象被稱為概念漂移[1]。傳統(tǒng)的利用正常數(shù)據(jù)訓(xùn)練完成的模型進(jìn)行異常檢測的方法不再適用,模型必須做到及時更新來保證模型的檢測有效。本文提出了一種基于長短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)的異常檢測方法,通過LSTM網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)預(yù)測和異常識別,并利用滑動窗口對預(yù)測差值進(jìn)行分布建模,為每個數(shù)據(jù)分配更加精準(zhǔn)的異常分?jǐn)?shù),從而實(shí)現(xiàn)更加精準(zhǔn)的異常檢測。
異常是與歷史模式不一致或偏離預(yù)期的一般比較罕見的事件,以至于懷疑它是由與正常數(shù)據(jù)不同的機(jī)制產(chǎn)生的,而異常值檢測就被定義為“發(fā)現(xiàn)”這些與其他觀察結(jié)果偏離的觀察結(jié)果。到目前為止,異常檢測的方法有很多。根據(jù)檢測類別的不同可以將異常檢測分為異常序列檢測、異常子序列檢測和單個異常點(diǎn)檢測[4],因?yàn)橄胍页隽鲾?shù)據(jù)中的異常點(diǎn),且為每個數(shù)據(jù)分配一個合理的異常分?jǐn)?shù)來展示它是異常的可能性,所以本文要實(shí)現(xiàn)的是單個異常點(diǎn)的檢測。此外,根據(jù)檢測方法的不同[5],異常檢測還可以分為基于統(tǒng)計的檢測方法[6-7]、基于距離的檢測方法[8-9]、基于密度的檢測方法[10-11]、基于聚類的檢測方法[12-13]、基于分類的檢測方法[14-15]等。這些方法各自有各自的優(yōu)勢和適用領(lǐng)域,但正如之前所說,絕大多數(shù)異常檢測算法適用于批量處理數(shù)據(jù),而由于流數(shù)據(jù)生成迅速、數(shù)量龐大和概念漂移的特點(diǎn),這些傳統(tǒng)的異常檢測方法不能直接應(yīng)用于流數(shù)據(jù)。
當(dāng)然,近幾年也提出了一些針對流數(shù)據(jù)的異常檢測方法。一些在線異常檢測方法,如大多數(shù)聚類算法、分布式分組匹配算法[16]、數(shù)據(jù)流多類學(xué)習(xí)算法[17]等,雖然可以滿足流數(shù)據(jù)異常檢測所需的實(shí)時性,但它們無法解決流數(shù)據(jù)的概念漂移問題。此外,Yu等[18]根據(jù)網(wǎng)絡(luò)流量模式變化的特點(diǎn)提出了針對于交通模式變化的異常檢測方法,該算法基于半監(jiān)督技術(shù),利用數(shù)據(jù)流模型訓(xùn)練檢測模型來進(jìn)行檢測。這屬于針對特定領(lǐng)域開發(fā)的基于模型的方法,需要明確的領(lǐng)域知識,適用性不高,不易推廣。卡爾曼濾波技術(shù)也屬于特定領(lǐng)域的方法,因?yàn)樗枰鄳?yīng)領(lǐng)域的知識來調(diào)整參數(shù)并選擇對應(yīng)的殘差模型[19]。除此之外,還有一些輕量級的統(tǒng)計方法,比如指數(shù)平滑[20]、變換點(diǎn)檢測[21]等,但這些方法大都集中檢測空間異常,在具有時間依賴性的應(yīng)用中可用性不高,而針對時間序列建模的整合移動平均自回歸模型(Autoregressive Integrated Moving Average model,ARIMA)[22]是用季節(jié)性來進(jìn)行時態(tài)數(shù)據(jù)建模,適合常規(guī)的每日或每周模式檢測數(shù)據(jù)中的異常,但如果數(shù)據(jù)沒有這種季節(jié)周期性就不再適用。
基于此,本文提出了一種基于LSTM網(wǎng)絡(luò)和滑動窗口的異常檢測方法。LSTM是神經(jīng)網(wǎng)絡(luò)的一種,可以進(jìn)行數(shù)據(jù)預(yù)測,相較于其他網(wǎng)絡(luò),LSTM可以快速學(xué)習(xí)數(shù)據(jù)的新特征,實(shí)時更新調(diào)整網(wǎng)絡(luò),保證模型的有效性,避免因流數(shù)據(jù)概念漂移問題導(dǎo)致的神經(jīng)網(wǎng)絡(luò)預(yù)測不準(zhǔn)確。此外,選取一個滑動窗口,將窗口內(nèi)所有差值進(jìn)行分布建模來為每個數(shù)據(jù)分配異常分?jǐn)?shù),可以直觀地觀察每個數(shù)據(jù)是異常的可能性大小。
用xt表示t時刻模型接收到的實(shí)時數(shù)據(jù),xt可能是來自于傳感器網(wǎng)路的傳感器數(shù)據(jù)、各種服務(wù)器的CPU使用率、零售業(yè)交易數(shù)據(jù)、帶寬的測量值等,因此,模型的輸入為xt,xt+1,xt+2,…。
本文所要解決的問題就是如何檢測流數(shù)據(jù)中的異常數(shù)據(jù),以及如何使數(shù)據(jù)分析人員可以更加直觀地觀察出每個數(shù)據(jù)的異常可能性。為了定義該異常可能性,本方法為每一個輸入數(shù)據(jù)xt分配異常分?jǐn)?shù)ASt(ASt∈[0,1]),ASt越大,xt為異常數(shù)據(jù)的可能性就越大。為了標(biāo)記異常數(shù)據(jù),為每一個輸入數(shù)據(jù)xt分配異常屬性值at,將得到的異常分?jǐn)?shù)ASt跟閾值T比較:大于閾值則xt為異常數(shù)據(jù),at=1;否則,xt為正常數(shù)據(jù),at=0。at為xt是否為異常的判斷輸出,僅有0或1兩個取值。
LSTM是神經(jīng)網(wǎng)絡(luò)的一種,神經(jīng)網(wǎng)絡(luò)是一種通過自身相互連接的神經(jīng)元們來進(jìn)行函數(shù)近似,從而進(jìn)行機(jī)器學(xué)習(xí)或模式識別的自適應(yīng)系統(tǒng)。它可以通過輸入大量訓(xùn)練數(shù)據(jù)進(jìn)行多次迭代來調(diào)整自身參數(shù),得到一個學(xué)習(xí)到訓(xùn)練數(shù)據(jù)特征的模型。當(dāng)有新數(shù)據(jù)輸入該模型時,模型便可根據(jù)參數(shù)計算相應(yīng)的輸出,完成分類或是預(yù)測任務(wù)。神經(jīng)網(wǎng)絡(luò)通常由輸入層、隱含層和輸出層組成,參數(shù)調(diào)整指的便是各個層之間神經(jīng)元的連接函數(shù)中參數(shù)的改變。
傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),如循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN),隱含層只有一個狀態(tài),對短期的輸入十分敏感,存在梯度消失的問題,不適合處理長序列數(shù)據(jù),特別是時間序列數(shù)據(jù)。LSTM網(wǎng)絡(luò)在隱含層中層加了一個狀態(tài)來存儲長期狀態(tài),避免了RNN的梯度消失。因此,LSTM特別適合處理時間序列數(shù)據(jù),廣泛應(yīng)用于時間序列數(shù)據(jù)的預(yù)測和異常檢測[23]。
LSTM單元的邏輯架構(gòu)示意圖如圖1所示。當(dāng)t時刻的數(shù)據(jù)xt輸入LSTM時,便與t-1時刻的長期狀態(tài)c t-1和輸出h t-1一起作為輸入?yún)⑴c運(yùn)算,得到t時刻LSTM的輸出h t,h t經(jīng)過維度轉(zhuǎn)化后便為所求的t時刻的預(yù)測數(shù)據(jù)。

圖1 LSTM單元邏輯架構(gòu)示意圖Fig.1 Schematic diagramof LSTMunit logical architecture
LSTM的關(guān)鍵之處就在于控制長期狀態(tài)c t,令網(wǎng)絡(luò)的每一個輸出都是長期狀態(tài)參與運(yùn)算之后的結(jié)果,避免梯度消失問題。為此,LSTM設(shè)置了3個門:遺忘門、輸入門和輸出門。先是遺忘門,它用來控制LSTM是否以一定概率遺忘上一層隱藏細(xì)胞狀態(tài)。其次是輸入門,它用來處理當(dāng)前序列位置的輸入,當(dāng)前時刻的單元狀態(tài)c t在該階段得到更新,c t的計算公式如式(1)所示:

經(jīng)過這個階段,LSTM當(dāng)前記憶與長期記憶組合完成了單元狀態(tài)c t的更新。最后是輸出門,它用來計算當(dāng)前序列位置的輸出,在該階段,計算當(dāng)前時刻的輸出h t,h t的計算公式如式(2)所示:

輸出門和單元狀態(tài)c t共同確定了LSTM的輸出。
圖1僅是LSTM單元的邏輯架構(gòu)圖,實(shí)際上每處運(yùn)算均由λ個神經(jīng)元參與(λ為隱含層神經(jīng)元的數(shù)量),LSTM的輸出也為λ維向量,因此,LSTM模型需要最后連接一個全連接層,將LSTM層的輸出進(jìn)行維度變化,使結(jié)果呈現(xiàn)想要的維度。
與其他神經(jīng)網(wǎng)絡(luò)相同,堆疊隱含層可以使模型更加深入,從而得到更加準(zhǔn)確的輸出。多個LSTM層組成的LSTM模型稱為堆疊式LSTM模型,其模型結(jié)構(gòu)如圖2所示。

圖2 堆疊式LSTM模型結(jié)構(gòu)Fig.2 Stacked LSTMmodel structure
為了解決1.1節(jié)中提出的問題,本文提出了基于LSTM和滑動窗口的流數(shù)據(jù)異常檢測方法SDLS(Stream data anomaly Detection method based on LSTM and Sliding window)。運(yùn)用LSTM網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)預(yù)測,且由于LSTM單元具有遺忘門,網(wǎng)絡(luò)可以快速學(xué)習(xí)數(shù)據(jù)的新特征,實(shí)時更新調(diào)整網(wǎng)絡(luò),避免因流數(shù)據(jù)概念漂移問題導(dǎo)致的神經(jīng)網(wǎng)絡(luò)預(yù)測不準(zhǔn)確。此外,對于每一個數(shù)據(jù),本方法不直接將預(yù)測差值作為其異常分?jǐn)?shù),而是選取一個合適大小的滑動窗口,將窗口內(nèi)所有差值進(jìn)行分布建模,再根據(jù)差值在分布內(nèi)的概率密度值來分配當(dāng)前數(shù)據(jù)的異常分?jǐn)?shù)大小,解決流數(shù)據(jù)概念漂移問題導(dǎo)致的異常分?jǐn)?shù)匹配不合理現(xiàn)象。圖3顯示了SDLS的架構(gòu)。

圖3 SDLS方法整體架構(gòu)示意圖Fig.3 Schematic diagramof overall architectureof SDLSmethod
本文選擇堆疊式LSTM網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)預(yù)測。LSTM的預(yù)測過程如下所示:
1)xt作為輸入進(jìn)入第一個LSTM層;
2)xt與h t-1,1進(jìn)行連接,得到 [xt,h t-1,1],[xt,h t-1,1]與矩陣W(f1)進(jìn)行矩陣點(diǎn)乘,得到結(jié)果矩陣f t,1,f t,1再進(jìn)行 sigmod操作,得到 sigmod(f t,1)。
3)[xt,h t-1,1]與矩陣W(i1)進(jìn)行矩陣點(diǎn)乘,得到結(jié)果矩陣i t,1,i t,1再進(jìn)行 sigmod 操作,得到 sigmod(i t,1);[xt,h t-1,1]與矩陣W(j1)進(jìn)行矩陣點(diǎn)乘,得到結(jié)果矩陣j t,1,j t,1再進(jìn)行 tanh 操作,得到 tanh(j t,1);最后根據(jù)式(1)計算當(dāng)前時刻的單元狀態(tài)c t,1。
4)[xt,h t-1,1]與矩陣W(o1)進(jìn)行矩陣點(diǎn)乘,得到結(jié)果矩陣o t,1,o t,1再進(jìn)行 sigmod 操作,得到 sigmod(o t,1)。最后根據(jù)式(2)計算當(dāng)前時刻的輸出h t,1。
5)h t,1作為輸入傳入第下一個LSTM層,重復(fù)進(jìn)行步驟2)~4),直到得到h t,m(m為LSTM隱含層的層數(shù))。
6)h t,m輸入全連接層,進(jìn)行維度轉(zhuǎn)換,得到t+1時刻的預(yù)測輸出xˉt+1。
通常情況下,計算預(yù)測值xˉt與實(shí)際值xt的差值dt,將差值d t轉(zhuǎn)化為統(tǒng)一度量的異常分?jǐn)?shù)ASt(ASt∈[0,1]),dt越大,異常分?jǐn)?shù)ASt越大,然后將異常分?jǐn)?shù)與規(guī)定的閾值T比較,大于T的為異常數(shù)據(jù)。但是,由于流數(shù)據(jù)的概念漂移現(xiàn)象,正常數(shù)據(jù)和異常數(shù)據(jù)的模式都會發(fā)生變化,單純地將以差值的大小來計算異常分?jǐn)?shù)會使得發(fā)生概念漂移之后的異常分?jǐn)?shù)不準(zhǔn)確。因此,選取一個合適大小的滑動窗口,將滑動窗口區(qū)間內(nèi)差值序列建模為正態(tài)分布,再計算差值dt在該分布內(nèi)的概率密度值作為xt的異常分?jǐn)?shù)ASt。這樣,xt的異常分?jǐn)?shù)取決于在t時刻及其之前一段時間內(nèi)的預(yù)測差值分布,異常分?jǐn)?shù)的分配可以隨著流數(shù)據(jù)的變化而變化,準(zhǔn)確性更高。
對于每一個數(shù)據(jù)xt,計算異常分?jǐn)?shù)首先要為其選取合適大小的滑動窗口。因?yàn)楫惓?shù)據(jù)的出現(xiàn)通常代表數(shù)據(jù)出現(xiàn)與之前不一致的模式,本方法選取倒數(shù)第n個異常所在時刻tan到t時刻的區(qū)間作為建模分布的區(qū)間,即[tan,t]。維持這個區(qū)間可以令滑動窗口區(qū)間內(nèi)差值序列的分布建模更加符合流數(shù)據(jù)的實(shí)時數(shù)據(jù)模式,從而得到更加適合的分布函數(shù)。然而,如果某段時間內(nèi)出現(xiàn)連續(xù)不斷的異常,那么最后n個異常所在區(qū)間會非常小,用該區(qū)間進(jìn)行建模也會令得到的分布函數(shù)因數(shù)據(jù)量過小而準(zhǔn)確率不高,因此,本方法規(guī)定了滑動窗口的最小長度l,如果tan≥t-l,則選取[t-l,t]作為滑動窗口的區(qū)間范圍。滑動窗口的選取有兩個標(biāo)準(zhǔn):第一個標(biāo)準(zhǔn)是t時刻之前最后n個異常所在的區(qū)間[tan,t];第二個標(biāo)準(zhǔn)為t時刻之前固定長度的區(qū)間[t-l,t],t'=min{tan,t-l},[t',t]作為最終的滑動窗口區(qū)間。
舉例來說明該過程。圖4為一個時間序列異常分?jǐn)?shù)的分布示意圖,令閾值T為0.5,則AS值在虛線以上的數(shù)據(jù)為異常數(shù)據(jù)。令t=50,n=10,l=30,則按照第一個標(biāo)準(zhǔn)選出的滑動窗口區(qū)間是50 s之前最后10個異常所在的區(qū)間,即為圖中S2區(qū)間;按照第二個標(biāo)準(zhǔn)選出的滑動窗口區(qū)間是20~50 s區(qū)間,即圖中S1區(qū)間,因?yàn)?0 s<30 s,本文取[20 s,50 s]作為最終的滑動窗口區(qū)間。

圖4 計算t=50時數(shù)據(jù)的異常分?jǐn)?shù)時按照兩個標(biāo)準(zhǔn)選取的滑動區(qū)間Fig.4 Sliding intervals selected according to two criterias when calculating abnormal score of data at time t=50
選擇好滑動窗口后,計算[t',t]區(qū)間內(nèi)差值序列[d t',dt]的平均值μ和方差σ2,再用μ與σ2進(jìn)行正態(tài)分布建模,得到F(x)=N~(μ,σ2),再計算差值d t在該分布內(nèi)的概率密度值F(dt),F(xiàn)(dt)便為xt的異常分?jǐn)?shù)ASt。
確定完異常分?jǐn)?shù)后,將異常分?jǐn)?shù)與閾值T進(jìn)行比較,大于閾值是異常數(shù)據(jù),否則為正常數(shù)據(jù)。由此,完成了異常數(shù)據(jù)的識別。
綜上,異常數(shù)據(jù)檢測算法的偽代碼如下所示。
算法1 異常數(shù)據(jù)檢測。
輸入 流數(shù)據(jù)序列xt,xt+1,…;
輸出流數(shù)據(jù)異常判定序列:at,at+1,…,ai∈{0,1}(0為正常,1為異常),及流數(shù)據(jù)異常分?jǐn)?shù)序列ASt,ASt+1,…。
1)將 流 數(shù) 據(jù) 序 列xt,xt+1,… 輸 入 LSTM,得 到 預(yù) 測 數(shù) 據(jù),,…
2)計算預(yù)測差值,di=|xˉi-xi|,i=t,t+1,…
3)記錄最初的n個異常值所在時刻:h0,h1,…,hn-1,此時直接將預(yù)測差值d轉(zhuǎn)化為異常分?jǐn)?shù)AS再與閾值比較來判斷是否為異常值。

本文使用液壓系統(tǒng)狀態(tài)檢測數(shù)據(jù)集[24]中的壓力傳感器數(shù)據(jù)來評估本文方法的性能。該數(shù)據(jù)集是用液壓實(shí)驗(yàn)臺實(shí)驗(yàn)獲得的,實(shí)驗(yàn)臺由一個主要工作和一個二次冷卻過濾回路組成,它們通過油箱連接。系統(tǒng)每60 s一個循環(huán),同時測量循環(huán)過程中的壓力、溫度等數(shù)據(jù)值,在系統(tǒng)運(yùn)行過程中,4個液壓部件(冷卻器、閥門、泵和蓄能器)的狀態(tài)會發(fā)生改變,數(shù)據(jù)的走勢也會隨之發(fā)生改變。
首先將數(shù)據(jù)輸入LSTM來得到預(yù)測數(shù)據(jù),本實(shí)驗(yàn)所用LSTM含有3個隱含層,其中的神經(jīng)元個數(shù)分別為128、64、16,時間步長設(shè)置為150。傳感器數(shù)據(jù)通常包含三種噪聲[25],本文在原始數(shù)據(jù)中添加這三種類型噪聲制造含噪聲數(shù)據(jù),之后將含噪聲數(shù)據(jù)輸入LSTM,并改變噪聲百分比來評估LSTM的預(yù)測精度,本文使用式(3)來評估訓(xùn)練的SDAE的擬合精度,Acu越大說明準(zhǔn)確率越高。

其中:xt為原始數(shù)據(jù),xˉt是LSTM通過含噪聲數(shù)據(jù)預(yù)測的數(shù)據(jù),L為時間序列長度。通過圖5可以看到,雖然隨著噪聲百分比的增大,Acu也隨之下降變大,但Acu始終在90%以上,說明LSTM預(yù)測擬合數(shù)據(jù)的能力很好。

圖5 LSTM在不同噪聲百分比下預(yù)測擬合數(shù)據(jù)的AcuFig.5 Acu of fitted data predicted by LSTM at different noise percentages
通過圖6,可以直觀地看到LSTM的預(yù)測能力,它可以很好地預(yù)測數(shù)據(jù)且可以很大程度上避免噪聲的影響,因此,它的預(yù)測差值可以用來檢測異常值。
在實(shí)驗(yàn)中,設(shè)置l=80,n=20,T=0.5,若ASt≥ 0.5則說明xt為異常值。
為了評估檢測SDLS檢測異常數(shù)據(jù)、確定異常分?jǐn)?shù)的能力,本文將SDLS與直接差值異常檢測法(Predicted Difference,PD)和另一種應(yīng)用于流數(shù)據(jù)的異常檢測方法——異常數(shù)據(jù)分布建模法(Abnormal Data distribution Modeling,ADM)[19]進(jìn)行比較,PD直接將預(yù)測差值的大小轉(zhuǎn)化為異常分?jǐn)?shù),預(yù)測差值越大,則異常分?jǐn)?shù)越大。ADM為另一種用滑動窗口內(nèi)的預(yù)測差值進(jìn)行分布建模計算異常分?jǐn)?shù)的方法,但ADM進(jìn)行分布建模時僅考慮窗口內(nèi)那些已經(jīng)被判定為異常的數(shù)據(jù),并且使用Q函數(shù)來計算異常分?jǐn)?shù)。本文使用曲線下面積(Area Under Curve,AUC)來評估算法的性能,這是一種廣泛使用的度量標(biāo)準(zhǔn),用于評估離群值檢測的性能[26]。當(dāng)AUC較大時,算法的性能更好。

圖6 LSTM對含噪聲數(shù)據(jù)進(jìn)行預(yù)測的效果Fig.6 Effect of LSTM predicting noisy data
圖7顯示了三種方法在應(yīng)用于具有不同噪聲百分比的數(shù)據(jù)時檢測異常數(shù)據(jù)的性能比較,可以看到,SDLS一直優(yōu)于其他兩種方法。SDLS的平均AUC值與PD和ADM相比分別提高了0.187和0.05(SDLS方法的平均值為0.915 527,PD方法的平均值為0.865 537,ADM方法的平均值為0.728 742)。ADM表現(xiàn)不佳,因?yàn)锳DM僅對異常數(shù)據(jù)進(jìn)行分布建模,適用于有大量嘈雜的異常數(shù)據(jù)的應(yīng)用,因此在異常數(shù)據(jù)較少時,AUC值不高。

圖7 三種流數(shù)據(jù)異常檢測方法的AUC性能對比Fig.7 AUCperformancecomparison of threestreamdata anomaly detection methods
針對流數(shù)據(jù)存在概念漂移的問題,本文提出了一種基于LSTM和滑動窗口的流數(shù)據(jù)異常檢測方法SDLS。首先通過LSTM進(jìn)行數(shù)據(jù)預(yù)測求出預(yù)測差值,再將滑動窗口內(nèi)的差值序列進(jìn)行分布建模,動態(tài)地為每個數(shù)據(jù)分配更加合適的異常分?jǐn)?shù),提高流數(shù)據(jù)異常檢測的準(zhǔn)確率。本文利用真實(shí)實(shí)驗(yàn)數(shù)據(jù)構(gòu)造含有噪聲的測試數(shù)據(jù),利用基于測試數(shù)據(jù)的實(shí)驗(yàn)驗(yàn)證了該方法的有效性。