龔漢鑫,齊金鵬,孔凡書,朱俊俊,曹一彤
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620)
隨著工業(yè)自動化、智慧醫(yī)療等行業(yè)的飛速發(fā)展,數(shù)據(jù)數(shù)量呈現(xiàn)出指數(shù)級的上升[1]。面向大規(guī)模時序數(shù)據(jù)的異常特征分析與快速檢測技術(shù)在醫(yī)療等大數(shù)據(jù)領(lǐng)域的應(yīng)用已成為熱門研究方向[2]。傳統(tǒng)的數(shù)據(jù)分析與檢測技術(shù)需要讀取整段原始數(shù)據(jù)樣本,再進行后續(xù)的特征分析與統(tǒng)計量計算[3]。當(dāng)面對數(shù)據(jù)量龐大且形式各異的異常數(shù)據(jù)時,傳統(tǒng)方法的時間復(fù)雜度、檢測精度等難以滿足實際應(yīng)用的需求[4]。目前,醫(yī)療病變數(shù)據(jù)分析采用常見的時域檢測方法,主要在時域上簡單分析病變數(shù)據(jù)的特征波形[5]。擬態(tài)法通過腦電信號波形的各種波形幅值、斜率和周期等參數(shù)[6]的差異來判定癲癇發(fā)作。該方法對于多種形態(tài)的醫(yī)療數(shù)據(jù)不敏感,準確率較低。類似于支持向量機(Support Vector Machines,SVM)的機器學(xué)習(xí)方法在數(shù)據(jù)分析中得到了廣泛的研究,但該方法對于核函數(shù)選取主要依賴經(jīng)驗,SVM也不適用于將數(shù)據(jù)分成多類[7-8]。
時域分析方法對時序數(shù)據(jù)存在的局部信息不敏感[9],而支持向量機核函數(shù)選取依賴經(jīng)驗。針對上述問題,并為了滿足大規(guī)模時序數(shù)據(jù)快速分析與異常狀態(tài)檢測等需求,本文提出了一種基于模板匹配與隸屬度解析的時序異??焖贆z測方法。該方法首先采用滑動窗口理論[10]將待檢測數(shù)據(jù)切分,實現(xiàn)對多突變點的時序數(shù)據(jù)特征提取,并探究最優(yōu)的滑動窗口寬度W對檢測精度的影響,以提高數(shù)據(jù)分析速度;然后,利用檢測速度更快、準確度更高的TSTKS突變點檢測算法[11],將多個連續(xù)窗口的波動量構(gòu)建為波動向量。通過定義波動向量模板,并基于模板匹配[12]與隸屬度解析[13]的方法實現(xiàn)對時序異常的特征分析與多異常狀態(tài)的快速檢測;最后,基于仿真訓(xùn)練集和測試集驗證了本文所提方法的有效性,并基于腦電癲癇數(shù)據(jù)實現(xiàn)了數(shù)據(jù)異常的特征分析以及病變狀態(tài)等快速檢測等實驗。實驗結(jié)果表明,本文所提出的新方法能夠通過對窗口的波動量進行標(biāo)準化,提高算法的魯棒性,可滿足大規(guī)模數(shù)據(jù)不同病變狀態(tài)的快速分析與檢測等要求。
本文基于模板匹配與隸屬度分析技術(shù),提出了一種時序數(shù)據(jù)快速檢測算法。如圖1所示,該方法將TSTKS數(shù)據(jù)流突變點檢測算法與滑動窗口理論相結(jié)合,在突變點檢測基礎(chǔ)上計算出窗口波動量;然后,根據(jù)多個連續(xù)波動量構(gòu)建波動向量,提取整段數(shù)據(jù)特征。由于病變時序數(shù)據(jù)的波動向量與正常的波動向量有差別,故將待檢測數(shù)據(jù)的波動向量中進行標(biāo)準化,即歸一化并二值化處理;最后,建立統(tǒng)一的基于病變信號波動向量標(biāo)準模板集合,采用隸屬度解析的方法,判斷待檢測波動向量與模板匹配的隸屬度是否達到設(shè)定閾值,并由此判定待檢測數(shù)據(jù)是否異常。
圖1 基于模板匹配與隸屬度解析的時序數(shù)據(jù)分析算法框架Figure 1. Framework of time series data analysis algorithm based on template matching and membership degree analysis
本文針對大規(guī)模多突變點的時序數(shù)據(jù),通過引入滑動窗口理論將其分成若干子段,然后采用TSTKS算法實現(xiàn)多突變點檢測。時序數(shù)據(jù)是隨著時間變化的數(shù)據(jù),存在明顯的時序性和彼此關(guān)聯(lián)性,即任意t1和t2時刻的值是互不影響的,因此常被用于進行數(shù)據(jù)挖掘和突變點檢測[14]。時序數(shù)據(jù)常見數(shù)學(xué)表達形式為
Z={x1,x2,…,xi,…,xn}
(1)
式中,xi代表某個數(shù)據(jù)流在i時刻對應(yīng)的一個d維的數(shù)據(jù)向量;n為數(shù)據(jù)長度。當(dāng)d取值為1,xi表示單變量;當(dāng)d取值不為1,xi表示多變量。
采用基于元素個數(shù)的滑動窗口策略對時序數(shù)據(jù)Z切分,整段數(shù)據(jù)可被表示為
Sz={w1,…,wi,…,wk}
(2)
式中,wi=(xi+1,xi+2,…,xi+W);k代表整段時序數(shù)據(jù)滑動窗口的個數(shù);W為滑動窗口內(nèi)數(shù)據(jù)長度,可有效保證各個窗口數(shù)據(jù)量攜帶信息一致,以便更好地利用TSTKS算法進行數(shù)據(jù)異常檢測。
本文利用滑動窗口切分整體待檢測數(shù)據(jù),并對各個分段數(shù)據(jù)分別應(yīng)用TSTKS突變點檢測算法。若在窗口中檢測到數(shù)據(jù)突變點,則分別計算每個窗口內(nèi)數(shù)據(jù)的波動量;若沒有檢測到突變點,則說明當(dāng)前窗口數(shù)據(jù)波動量為零[15]。窗口波動量FW的定義為
(3)
式中,var(ZL)表示wi窗口內(nèi)左半部分數(shù)據(jù)的方差;var(ZR)表示wi窗口內(nèi)右半部分數(shù)據(jù)的方差;Z表示wi窗口內(nèi)包含的全部時序數(shù)據(jù);max(Z)和min(Z)分別表示時序數(shù)據(jù)的最大值和最小值。波動量不僅能夠表示數(shù)據(jù)的波動特征,還可保留每個子段的信息。為了消除波動值之間數(shù)量級的差異,對波動量進行歸一化處理[16],將所有特征統(tǒng)一到[0,1]區(qū)間。歸一化計算式為
(4)
式中,F(xiàn)Wmin為波動量序列中最小數(shù);FWmax為波動量序列中最大數(shù)。然而時序數(shù)據(jù)具有復(fù)雜多變、海量的特點,單個窗口波動值無法快速獲得數(shù)據(jù)的整體波動情況,不適合對大規(guī)模時序數(shù)據(jù)進行有價值信息的挖掘。因此,對于某段時序數(shù)據(jù)Z,應(yīng)用TSTKS算法與滑動窗口理論得到每個窗口波動值,將m個連續(xù)固定寬度為W的窗口波動值NFi組成一個多維度的向量,稱之為波動向量VN,如式(5)所示。
VN=[NF1,NF2,…,NFm]
(5)
波動向量的建立流程如圖2所示。
圖2 波動向量的構(gòu)建Figure 2. Construction of wave vector
本節(jié)圍繞波動向量提出了基于模板匹配與隸屬度解析的時序數(shù)據(jù)異常檢測算法。通過與模板庫中波動向量模板進行匹配分類,采用隸屬度分析方法衡量模板匹配的相似程度,從而實現(xiàn)對數(shù)據(jù)快速檢測分析。
在對時序病變數(shù)據(jù)構(gòu)建波動向量的方法基礎(chǔ)上,本文基于模板匹配與隸屬度分析技術(shù)提出了一種時序數(shù)據(jù)異常檢測算法。在已知數(shù)據(jù)特征或?qū)?yīng)類別的前提下,在標(biāo)準化波動向量的前提下預(yù)定義波動向量模板,建立波動向量模板庫。通過時序病變數(shù)據(jù)反映的病情輕重緩急以及病變狀態(tài)的不同,定義多個波動向量模板,例如針對病情是否發(fā)作可將正常狀態(tài)的波動向量模板定義為[n1,n2,…,nm],而異常狀態(tài)波動向量模板可被定義為[a1,a2,…,am]。
通過隸屬度解析的方法對不同模板向量分別統(tǒng)計待檢測向量各維度的隸屬度。根據(jù)論域X為有限集時,記X={x1,x2,…xn},則X上的模糊集Ak可以表示為
(6)
(7)
式中,σ為閾值。根據(jù)上述定義的波動向量VNWF,計算VNWF向量每個維度對應(yīng)模糊集Ak的隸屬度,然后通過比較不同的模板向量的隸屬度值進行分析。
為了對基于模板匹配與隸屬度分析算法的性能進行評價,本文引用準確率(Acc)、查全率(Re)兩個常用二分類問題指標(biāo)作為評價指標(biāo)。Acc是指對于給定的數(shù)據(jù),匹配分類正確的樣本數(shù)占總樣本數(shù)的比例。Re指在所有的正類中被匹配為正類的比例。
(8)
(9)
式中,TP表示癲癇發(fā)作時正確匹配分類的樣本數(shù);TN表示癲癇未發(fā)作時正確分類的樣本數(shù);FP表示癲癇未發(fā)作被匹配成癲癇發(fā)作的樣本數(shù);FN表示癲癇發(fā)作被錯誤分成癲癇未發(fā)作的樣本數(shù)。
為了更好地說明基于模板匹配與隸屬度解析算法對病變時序信號快速分析的優(yōu)勢,本文通過模擬時序數(shù)據(jù)采用不同寬度窗口,并根據(jù)波動向量模板與隸屬度分析方法進行試驗,以驗證該方法的可行性。此外,本文選取實際腦癲癇數(shù)據(jù)進行多次實驗,確定了最佳二值化閾值;設(shè)計并實現(xiàn)了基于腦電癲癇信號的病變特征分析,能夠?qū)Σ煌∽儬顟B(tài)進行檢測。
當(dāng)具有多突變點且時序數(shù)據(jù)長度n一定時,滑動窗口的寬度是關(guān)系突變點檢測精度的一個重要參數(shù)。為進一步探究滑動窗口寬度W對突變點檢測影響,多次對不同寬度W進行仿真實驗。根據(jù)500次仿真結(jié)果,不同W下算法的檢測指標(biāo)如表1所示。
表1 窗口寬度變化500次突變點檢測統(tǒng)計表
由表1可以看出,突變點檢測的精度隨著窗口W的增加呈現(xiàn)先增加后減小的趨勢,這是由于當(dāng)窗口寬度增大時,關(guān)鍵數(shù)據(jù)信息增加,檢測精度提高。但當(dāng)窗口過大時,窗口攜帶的信息過多導(dǎo)致數(shù)據(jù)分布差異被忽略,檢測精度降低。時耗與窗口寬度大小呈現(xiàn)負相關(guān)關(guān)系,窗口越大,檢測耗時越低。過大或過小的窗口都會導(dǎo)致突變點的漏檢或誤檢,導(dǎo)致平均誤差增大。
根據(jù)大多數(shù)病變特征信號相關(guān)概念可知,患者在未發(fā)病時的病變信號與正常人類似,其波動是比較平穩(wěn)且有規(guī)律性的。在發(fā)病時,病變信號出現(xiàn)起伏劇烈,存在明顯的波動,在疾病發(fā)作結(jié)束后到又逐漸恢復(fù)到正常波動。通過不同狀態(tài)的模擬數(shù)據(jù)進行擬合,可在一定程度上表示真實時序病變數(shù)據(jù),數(shù)據(jù)波動較大時代表異常狀態(tài)。根據(jù)上述窗口試驗,本文采用窗口寬度W為256進行突變點檢測,其模擬時序數(shù)據(jù)檢測效果如圖3(a)所示。對模擬數(shù)據(jù)計算出的波動量進行歸一化并二值化處理,預(yù)定義異常波動向量模板為[1,1,1,1]。采用模板匹配與隸屬度分析的方法對模擬數(shù)據(jù)進行異常狀態(tài)檢測,其結(jié)果如圖3(b)所示。
由圖3可以看出,隨著窗口更新,其異常概率增加,超出設(shè)定的0.5閾值警戒線,達到100%異常狀態(tài)匹配概率。當(dāng)時序數(shù)據(jù)在劇烈波動階段時,異常狀態(tài)匹配概率達到100%。劇烈波動結(jié)束后,異常狀態(tài)的匹配概率隨著窗口更新而降低并趨于0。該結(jié)果表明文中所提算法不僅能檢測出時序數(shù)據(jù)的多突變點位置,其對時序數(shù)據(jù)異常狀態(tài)的檢測也有良好的效果。
(a)
為說明基于波動向量模板匹配與隸屬度解析算法對病變信號檢測性能,本文選取波士頓兒童醫(yī)院癲癇數(shù)據(jù)庫[17]進行實驗。本文采用TSTKS算法與滑動窗口寬度W=256分別對正常腦電數(shù)據(jù)和癲癇異常腦電數(shù)據(jù)進行多突變點檢測,結(jié)果如圖4和圖5所示。
圖4 癲癇發(fā)作時腦電數(shù)據(jù)突變點檢測情況Figure 4. Detection of sudden mutation points in EEG data during epileptic seizure
圖5 正常腦電數(shù)據(jù)突變點檢測情況Figure 5. Detection of mutation points in normal EEG data
根據(jù)圖4和圖5的腦電信號對比可知,在未發(fā)病時,癲癇患者腦電信號與正常人類似,其波動是比較平穩(wěn)且有規(guī)律性的。在發(fā)病時,癲癇患者腦電信號出現(xiàn)劇烈起伏。當(dāng)癲癇發(fā)作結(jié)束,癲癇患者腦電波又逐漸恢復(fù)到正常。因此,采用滑動窗口與TSTKS算法對待檢測腦電信號數(shù)據(jù)進行突變點檢測,計算波動值并歸一化,通過對歸一化的波動值進行“好與壞”的分類,即將波動值進行二值化,忽略其數(shù)值的大小變化。根據(jù)對腦電數(shù)據(jù)的多次實驗,本文擬定二值化閾值σ為0.185,將大于閾值的波動值映射為1,而小于或等于閾值的波動值映射為0。本文根據(jù)癲癇病變數(shù)據(jù)多次實驗,選取連續(xù)4個窗口的波動值構(gòu)建波動向量,定義正常腦電信號波動向量模板為[0,0,0,0],癲癇劇烈發(fā)作時模板為[1,1,1,1],并采用基于模板匹配與隸屬度解析方法對腦電病變異常時序數(shù)據(jù)進行快速檢測和診斷。波動向量模板匹配與隸屬度解析結(jié)果如圖6所示。
(a)
如圖6(a)所示,第6次到第15次癲癇波動向量異常模板匹配結(jié)果呈現(xiàn)不斷上升的過程,并超出警戒值0.5,表明處于癲癇發(fā)作的預(yù)警狀態(tài)。在第15次到55次模板匹配時,匹配率基本處于75%以上,該實驗結(jié)果表明在圖4中,第3 000 s到3 040 s的癲癇病變腦電信號發(fā)生了劇烈波動。第55次到60次異常模板匹配的數(shù)值自50%逐漸下降,說明癲癇正處于發(fā)病結(jié)束階段。由于還存在少部分痙攣,因此仍有腦電信號異常,導(dǎo)致第60次到第65次異常匹配結(jié)果為50%。而在癲癇發(fā)作結(jié)束后,第65次到95次異常模板向量匹配結(jié)果基本為0。第90次左右少數(shù)檢測匹配率為25%,這可能是由病人活動如睜眼、臉部動作導(dǎo)致的神經(jīng)信號變化。癲癇患者在發(fā)病時會有間歇性波動和眼部干擾,導(dǎo)致波動值較低,在總體數(shù)據(jù)檢測過程中命中率會有一些波動,但通過對整體數(shù)據(jù)的匹配分析,本文提出的方法依然能夠快速檢測出患者是否處于發(fā)病狀態(tài)。
為了說明該方法的性能和有效性,本文選取傳統(tǒng)的相關(guān)系數(shù)模板匹配方法[18]和基于Manhattan距離模板匹配方法[19]進行對比驗證,其實驗結(jié)果統(tǒng)計如表2所示。
表2 3種模板匹配算法500次檢測結(jié)果統(tǒng)計
由表2的平均指標(biāo)結(jié)果表明,3種模板匹配方法都能夠檢測出癲癇異常狀態(tài),但基于隸屬度分析的模板匹配方法在檢測癲癇發(fā)作異常病變狀態(tài)時更加有效。盡管該算法的時耗略高于Manhattan距離法,但是其在匹配準確率和查全率上都有更好的效果,說明該方法具有較好的檢測性能。
本文基于模板匹配與隸屬度解析技術(shù)提出了一種時序數(shù)據(jù)的特征分析與異常狀態(tài)的快速檢測方法。該方法采用滑動窗口理論實現(xiàn)時序數(shù)據(jù)分段與特征提??;采用TSTKS算法檢測連續(xù)窗口的突變點,進而計算波動量的方式構(gòu)建波動向量,并通過預(yù)定義的模板匹配與隸屬度解析的方法實現(xiàn)數(shù)據(jù)異常的特征分析以及異常病變狀態(tài)的快速檢測。仿真數(shù)據(jù)和腦癲癇信號分析實驗表明,本文所提方法是對原始數(shù)據(jù)的波動量進行分析,并將其二值化,實現(xiàn)了大規(guī)模時序數(shù)據(jù)分析方法的快速性、準確性和魯棒性,能夠滿足大規(guī)模數(shù)據(jù)不同病變狀態(tài)的快速分析與檢測。