李曉峰,王妍瑋,李 東
1(黑龍江外國語學院 信息工程系,哈爾濱 150025)
2(普渡大學 機械工程系,西拉法葉市 IN47906)
3(哈爾濱工業(yè)大學 計算機科學與技術(shù)學院,哈爾濱 150001)
數(shù)據(jù)庫管理系統(tǒng)和信息技術(shù)在近年來得以快速發(fā)展,人們收集和產(chǎn)生數(shù)據(jù)的能力不斷提高,醫(yī)療數(shù)據(jù)庫中存在的數(shù)據(jù)量呈直線增長.過去對數(shù)據(jù)的檢測分析主要通過分析員完成,在專家意見的基礎(chǔ)上通過數(shù)據(jù)分析在醫(yī)療數(shù)據(jù)庫中獲取和查詢數(shù)據(jù),由分析員決定數(shù)據(jù)分析的結(jié)果.但由于數(shù)據(jù)庫中的數(shù)據(jù)急劇膨脹,數(shù)據(jù)的復雜性和時效性也不斷增強,傳統(tǒng)方法已經(jīng)不能滿足人們的要求.為了從醫(yī)療數(shù)據(jù)庫中獲取有用的信息,需要改進現(xiàn)有的數(shù)據(jù)檢測技術(shù).
在醫(yī)療數(shù)據(jù)庫中存在一些與其他數(shù)據(jù)行為不同,或是與其他數(shù)據(jù)差異較大的數(shù)據(jù),被稱為離群數(shù)據(jù).離群數(shù)據(jù)中通常存在有用的信息,因此需要對醫(yī)療數(shù)據(jù)庫中存在的離群數(shù)據(jù)進行檢測,眾多學者進行了相關(guān)研究,并取得了一定的成果.
Hauskrecht M 等[1]通過對數(shù)據(jù)離群點檢測實現(xiàn)異?;颊吖芾?該方法通過使用EMR 存儲庫來學習將患者狀態(tài)與病人管理操作相關(guān)聯(lián)的統(tǒng)計模型,使用電子病歷保存患者信息,通過與以往病歷的異常分析,獲取異常患者行為,但該方法的計算代價較大;Yu YW 等[2]提出了一種新的基于鄰域軌跡離群點的分類方法,對研究對象真實數(shù)據(jù)集進行理論分析和實證研究,驗證了本文方法在捕獲不同類型數(shù)據(jù)的有效性,但該方法的離群點檢測率不高,且誤差率較高;Jobe JM 等[3]提出一種基于計算機的數(shù)據(jù)集群方法,將Rousseuw 的最小協(xié)方差行列式方法的重加權(quán)版本與最初基于多步聚類的算法結(jié)合起來,找出離群點,實驗結(jié)果表明,該方法穩(wěn)健性較好,但是離群點檢測率較低,計算代價大;鄒云峰等[4]提出基于局部密度的數(shù)據(jù)庫離散數(shù)據(jù)檢測算法,該算法將弱k近鄰點和強k近鄰點概念引入離散數(shù)據(jù)檢測中,對鄰近數(shù)據(jù)點在數(shù)據(jù)庫中的離群相關(guān)性進行分析,根據(jù)分析結(jié)果區(qū)別對待數(shù)據(jù)點,通過數(shù)據(jù)點離群性預判方法完成醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)的檢測,該算法檢測離散數(shù)據(jù)的執(zhí)行時間較長,存在檢測效率低的問題.李少波等[5]提出基于密度的數(shù)據(jù)庫離群數(shù)據(jù)檢測算法,該算法在離群數(shù)據(jù)檢測過程中引入滑動時間窗口,通過滑動時間窗口劃分數(shù)據(jù),計算數(shù)據(jù)的信息熵,根據(jù)計算結(jié)果對數(shù)據(jù)進行篩選和剪枝,通過離群因子對篩選后的數(shù)據(jù)進行判斷,完成數(shù)據(jù)庫離散數(shù)據(jù)的檢測,該算法計算得到的離群因子存在誤差,不能準確的對醫(yī)療數(shù)據(jù)庫中的數(shù)據(jù)進行判斷,存在離散點誤差率高的問題.魏暢等[6]提出基于約簡策略的數(shù)據(jù)庫離散數(shù)據(jù)檢測算法,該算法在馬氏距離標準的基礎(chǔ)上對數(shù)據(jù)集進行簡約處理,通過數(shù)據(jù)流時間相關(guān)性和數(shù)據(jù)分布密度準則構(gòu)建決策模型,通過決策模型對數(shù)據(jù)庫中存在的離散數(shù)據(jù)進行檢測,該算法構(gòu)建的決策模型精準度較低,導致離散點檢測率低.尹娜等[7]提出了一種基于混合式聚類算法的離群點挖掘在異常檢測中的應(yīng)用方法,該方法通過k-中心點算法找出簇中心,在此基礎(chǔ)上去除其中較隱秘的數(shù)據(jù)樣本,再結(jié)合基于密度的聚類算法計算出離群數(shù)據(jù)的異常度,從而判斷出離群點.但是該算法在挖掘隱秘樣本時出錯率較高,致使最終的檢測結(jié)果存在較大誤差.
針對目前現(xiàn)有方法中存在的離群數(shù)據(jù)檢測過程執(zhí)行時間較長、檢測效率低、離群點檢測率低的問題,提出基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法.在對空間中的稀疏區(qū)域和稠密區(qū)域進行劃分再合并,實現(xiàn)數(shù)據(jù)過濾,通過層次化深度學習過程融合專家知識增強對離群數(shù)據(jù)的多層感知,實現(xiàn)對離群數(shù)據(jù)的檢測,達到降低算法計算代價、降低耗時、提高檢測率和準確率的目的.
醫(yī)療數(shù)據(jù)庫中存在海量的數(shù)據(jù),在對其中的離群點檢測之前,本文基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法首先使用動態(tài)網(wǎng)格劃分方法對醫(yī)療數(shù)據(jù)庫中的數(shù)據(jù)進行篩選,構(gòu)建候選離群數(shù)據(jù)集,以此來達到縮小檢測規(guī)模、減少檢測執(zhí)行時間的目的.
動態(tài)網(wǎng)格劃分方法是根據(jù)醫(yī)療數(shù)據(jù)庫中數(shù)據(jù)流的密度特點對數(shù)據(jù)做網(wǎng)格分裂及合并處理,按照密度大小對數(shù)據(jù)庫空間中的數(shù)據(jù)進行分類,劃分為稀疏區(qū)域和稠密區(qū)域,對稠密區(qū)域中存在的大量主體數(shù)據(jù)進行分析,存儲有較大概率成為離群點的數(shù)據(jù)并構(gòu)建候選離群點集合[8,9].
將較小的權(quán)重賦予給歷史數(shù)據(jù),降低歷史數(shù)據(jù)對網(wǎng)格劃分的影響,使當前數(shù)據(jù)在數(shù)據(jù)庫中的分布情況能夠更好的通過網(wǎng)格進行反應(yīng)[10].
式中,ri代 表的是數(shù)據(jù)點.網(wǎng)格統(tǒng)計信息元素的計算公式如下:
設(shè)tc代表的是當前時間.根據(jù)上述性質(zhì),增量更新數(shù)據(jù)在網(wǎng)格C中對應(yīng)的統(tǒng)計信息如下:
在初始化處理時,對數(shù)據(jù)的網(wǎng)格進行分割,獲得初始網(wǎng)格,根據(jù)網(wǎng)格統(tǒng)計信息可以計算得到數(shù)據(jù)在網(wǎng)格中對應(yīng)的平均值 μi和標準偏差σi:
如果網(wǎng)格的密度達到設(shè)定的閾值時,分割網(wǎng)格.將數(shù)據(jù)聚集并劃分到對應(yīng)的網(wǎng)格中是網(wǎng)格分裂合并的原則[11].所以保存每個維度上網(wǎng)格對應(yīng)的方差和均值,選擇最大方差相應(yīng)的維度,在均值處做劃分處理,可以在兩個新生成的網(wǎng)格中劃入數(shù)據(jù).
式中,m inj代 表的是第j維度上在網(wǎng)格中存在的最小值;maxj代表的是第j維度上在網(wǎng)格中存在的最大值.
通過對網(wǎng)格進行劃分再合并,能夠去除數(shù)據(jù)集中的非離群數(shù)據(jù),保證剩余的數(shù)據(jù)均為離群數(shù)據(jù),從而實現(xiàn)數(shù)據(jù)過濾,有效降低算法計算代價和復雜度,節(jié)約耗時提高醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測的效率.
醫(yī)療數(shù)據(jù)庫中,針對數(shù)據(jù)類別的確定有多種方式,可依據(jù)不同設(shè)備采集到的數(shù)據(jù)進行分類,可依據(jù)不同種類疾病進行數(shù)據(jù)分類,還可依據(jù)不同身體部位進行數(shù)據(jù)分類等,只有依據(jù)同一分類方式獲取得到的醫(yī)療數(shù)據(jù)才具有實際意義.因此,本文提出了基于深度學習的醫(yī)療數(shù)據(jù)分類和檢測框架,在每一分類層次上都能夠?qū)崿F(xiàn)數(shù)據(jù)檢測,即采用層次化深度學習方法對醫(yī)療數(shù)據(jù)庫中存在的離群數(shù)據(jù)進行檢測.
現(xiàn)有的離群數(shù)據(jù)檢測算法一般都是根據(jù)專家經(jīng)驗設(shè)定對象鄰域半徑,結(jié)果隨機性和主觀性較大[13].本文所提的基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法中,深度學習是基于模擬人腦進行學習的一種神經(jīng)網(wǎng)絡(luò),本文采用一種基于卷積神經(jīng)網(wǎng)絡(luò)的深度網(wǎng)絡(luò)結(jié)構(gòu)進行離群數(shù)據(jù)檢測;層次化是指包含了專家知識層次和數(shù)據(jù)屬性取值分布信息層次兩部分,依據(jù)這兩者構(gòu)建深度網(wǎng)絡(luò)分類器,有效感知離群數(shù)據(jù),提高離群數(shù)據(jù)檢測結(jié)果的準確率.基于層次化深度學習的離群數(shù)據(jù)檢測結(jié)構(gòu)框架如圖1 所示.
根據(jù)圖1 可知,層次化深度學習檢測框架中,基于專家知識和數(shù)據(jù)屬性取值分布信息這兩個層次分類,構(gòu)建了深度網(wǎng)絡(luò)分類器.接下來主要通過對數(shù)據(jù)差異度量來訓練分類器,從而實現(xiàn)離群數(shù)據(jù)檢測,具體過程如下:
圖1 層次化深度學習檢測框架
醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)存在混合型屬性值和數(shù)據(jù)型屬性值,為了有效的對兩者之間存在的差異進行度量,主要通過度量鄰域距離實現(xiàn)[13,14].設(shè)HEOMB(x,y)代表的是重疊度量值,其計算公式如下:
式中,參數(shù)dc ji(x,y)的計算公式如下:
通過式(22)確定鄰域半徑 εc j:
式中,std(cj)代 表的是屬性cj取值時對應(yīng)的標準差,可以通過該標準差對屬性均值的分散程度進行衡量[15].如果標準差std(cj)的 值較大時,表明在屬性cj上大部分數(shù)據(jù)的均值和取值之間存在的差異較大;如果std(cj)的值較小時,表明在屬性cj上大部分數(shù)據(jù)的均值和取值之間存在的差異較小[16,17].
λ代表的是專家設(shè)定的參數(shù),鄰域半徑的大小可以通過參數(shù)λ 進行調(diào)整[18].
設(shè)VDM(x,y)代表的是差異度量值,其計算公式為:
式中,x,y為對象集中存在的對象;P代表的是對象集對應(yīng)的特征集;df(xf,yf)代 表的是xf、yf之間存在的距離.
為了確定數(shù)據(jù)在數(shù)據(jù)庫中的離群程度,離群度量數(shù)據(jù)型屬性的取值[19,20].用NVDM(xi,xj)代表某存在對象xi和yi之 間的鄰域值差異度量值,設(shè)NOF代表的是鄰域離群因子,其計算公式如下:
設(shè) μ代表的是預設(shè)的離群點判定閾值,對比鄰域離群因子NOF與閾值μ 的大小.如果滿足如下條件,則該數(shù)據(jù)為離群數(shù)據(jù),否則為離群數(shù)據(jù).對所有的數(shù)據(jù)判斷完,即完成了對醫(yī)療數(shù)據(jù)庫中離群數(shù)據(jù)的檢測.
為了驗證基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法的整體有效性,需要對其進行測試.
實驗條件設(shè)置如表1 所示.
表1 實驗條件設(shè)置情況
實驗數(shù)據(jù):本文使用UCI 機器學習庫中的Annealing和Wisconsin Breast Cancer 數(shù)據(jù)集(網(wǎng)址:http://archive.ics.uci.edu/ml/).為增強實驗說服力,將本文所提的基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法(算法1)與文獻[2](算法2)、文獻[3](算法3)、文獻[4]中的基于局部密度的數(shù)據(jù)庫離散數(shù)據(jù)檢測算法(算法4)、文獻[5]中的基于密度的數(shù)據(jù)庫離群數(shù)據(jù)檢測算法(算法5)、文獻[6]中的基于約簡策略的數(shù)據(jù)庫離散數(shù)據(jù)檢測算法(算法6)、文獻[7]中的基于混合式聚類算法的離群點挖掘在異常檢測中的應(yīng)用方法(算法7)進行對比測試.
實驗選取的評價指標及計算方式如下:
(1)計算代價:數(shù)據(jù)在實際應(yīng)用中,由于過濾不佳或其他問題,易導致錯誤率增加,加大計算代價,本實驗以計算代價為指標進行分析,選取代價權(quán)值體現(xiàn)不同算法的計算代價情況,代價權(quán)值越高,計算代價越大.
(2)檢測時間:在迭代次數(shù)相同的條件下,測試本文算法和算法4、算法5、算法6、算法7 等5 種不同算法檢測離群數(shù)據(jù)的執(zhí)行時間,執(zhí)行時間越短證明檢測效率越高.
(3)離群點檢測率:為了進一步驗證本文所提的基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法的整體有效性,將離群點檢測率作為對比指標進行實驗,計算方法如下:
設(shè)L代表的是離群點檢測率,其計算公式如下:
式中,Nl代 表的是檢測出正確的離群點總數(shù);Nz代表的是數(shù)據(jù)集中存在的離群點總數(shù).
(4)離群點誤差率:將離群點誤差率作為對比指標,對基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法、算法2、算法5、算法6、算法7 進行測試.
設(shè)W代表的是離群點誤差率,其計算公式如下:
式中,M1代 表的是輸出的離群點總數(shù);M2代表的是正確離群點總數(shù);S代表的是數(shù)據(jù)集總數(shù).
對本文基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法與算法2、算法3、算法4 進行對比,結(jié)果如圖2 所示.
圖2 計算代價對比
分析圖2 可以看出,本文基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法的計算代價明顯較低,代價權(quán)值不超過1.5,而算法2、算法3、算法4 的代價權(quán)值集中在1.0~3.0 之間,算法2 最高,代價權(quán)值多在2.5 以上,由此可以看出,本文算法的計算代價小,具有一定的優(yōu)勢.因為本文算法通過對網(wǎng)格進行劃分再合并,去除了數(shù)據(jù)集中的非離群數(shù)據(jù),即進行了數(shù)據(jù)過濾,有效提高了數(shù)據(jù)質(zhì)量,降低了計算代價.
在迭代次數(shù)相同的條件下,5 種不同算法檢測離群數(shù)據(jù)的執(zhí)行時間測試結(jié)果如圖3 所示.
圖3 5 種不同算法的執(zhí)行時間對比
分析圖3 可知,隨著迭代次數(shù)的不斷增加,不同算法的在檢測離群數(shù)據(jù)時的執(zhí)行時間也在不斷發(fā)生變化.其中,本文所提的基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離散數(shù)據(jù)檢測算法在多次迭代中的最多執(zhí)行時間為200 s,其執(zhí)行時間折線僅在迭代次數(shù)為300 次時與基于混合式聚類算法的離群點挖掘在異常檢測中的應(yīng)用方法的執(zhí)行時間折線相交,證明該算法的執(zhí)行時間明顯少于基于局部密度的數(shù)據(jù)庫離散數(shù)據(jù)檢測算法、基于密度的數(shù)據(jù)庫離群數(shù)據(jù)檢測算法、基于約簡策略的數(shù)據(jù)庫離散數(shù)據(jù)檢測算法、基于混合式聚類算法的離群點挖掘在異常檢測中的應(yīng)用方法的執(zhí)行時間.這是主要因為基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法采用動態(tài)網(wǎng)格劃分方法對數(shù)據(jù)進行篩選,有效縮小了數(shù)據(jù)檢測的范圍和規(guī)模,因此節(jié)省了檢測數(shù)據(jù)所用的時間,大大提高了檢測效率.
對基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法、算法2、算法3、算法6、算法7 進行測試.
基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法、算法2、算法3、算法6、算法7 的離群點檢測率計算結(jié)果如表2 所示.
表2 5 種不同算法的離群點檢測率測試結(jié)果(%)
為了更直觀、清晰地對比不同算法的離群點檢測率,將表2 中的數(shù)據(jù)用折線圖的形式表現(xiàn),如圖4 所示.
圖4 5 種不同算法的離群點檢測率對比
分析表2 和圖4 中的數(shù)據(jù)可知,在5 次不同迭代中,本文所提的基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法的平均離群點檢測率為97.6%,算法4 的平均離群點檢測率為83.0%,算法5 的平均離群點檢測率為75.8%,算法6 的平均離群點檢測率為69.4%,算法7 的平均離群點檢測率為82.2%.對比5 種不同算法的離群點檢測率可知,基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法的離群點檢測率始終高于另外4 種算法,進一步證明了本文所提算法的有效性.究其原因,是因為本文算法基于多層次深度學習進行離群數(shù)據(jù)檢測,融合了卷積神經(jīng)網(wǎng)絡(luò)和層次分類兩者的優(yōu)勢,有效提高了算法的離群點檢測率.
基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法、算法2、算法5、算法6、算法7 的離群點誤差率計算結(jié)果如表3 所示.
表3 5 種不同算法的離群點誤差率計算結(jié)果
為了更直觀地對比不同算法的離群點誤差率,將表3 中的數(shù)據(jù)用折線圖的形式表現(xiàn),如圖5 所示.
分析表3 和圖5 可知,在五次不同迭代中,本文所提的基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法的平均離群點誤差率為0.12%;算法2 的平均離群點誤差率為0.288%;算法5 的平均離群點誤差率為0.292%;算法6 的平均離群點誤差率為0.35%,算法7 平均離群點誤差率為0.316%.對比5 種不同算法的平均離群點誤差率可知,基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法的離群點誤差率始終低于另外4 種算法,證明了本文所提算法的有效性.本文算法融合專家知識和數(shù)據(jù)的屬性取值分布信息,從多個層次感知離群數(shù)據(jù)信息,從而降低了離群數(shù)據(jù)檢測誤差.
圖5 5 種不同算法的離群點誤差率對比
綜上所述,本文所提的基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離散數(shù)據(jù)檢測算法的離群點檢測率較高、離群點誤差率較低.這主要是因為基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法在過濾離群數(shù)據(jù)時,采用動態(tài)網(wǎng)格劃分法降低數(shù)據(jù)檢測的計算代價,縮短了檢測執(zhí)行時間,而在計算鄰域半徑時,融合專家知識和數(shù)據(jù)的屬性取值分布信息,降低了檢測誤差,大大提高了基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法的有效性.
醫(yī)療信息量的不斷增長以及信息技術(shù)的飛速進步,使醫(yī)療數(shù)據(jù)庫中積累了大量數(shù)據(jù).如何在醫(yī)療數(shù)據(jù)庫中及時、高效、準確的獲取信息,是目前亟需解決的問題之一.針對當前醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法存在檢測效率低、離群點檢測率低和離群點誤差率高的問題,本文提出基于層次化深度學習的醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法,可以精準的在短時間內(nèi)完成醫(yī)療數(shù)據(jù)庫中離群數(shù)據(jù)的檢測,解決了當前醫(yī)療數(shù)據(jù)庫離群數(shù)據(jù)檢測算法中存在的問題,具有計算代價小、檢測耗時短、離群點檢測率高、離群點誤差率低的優(yōu)點,為數(shù)據(jù)檢測、挖掘技術(shù)的發(fā)展奠定了基礎(chǔ).在未來的研究階段,將深入對不同屬性的離群數(shù)據(jù)進行精細檢測,進一步提高檢測效果.