陳永紅,廖欣,鄭欣,陳雷霆,4
(1.電子科技大學計算機科學與工程學院,成都 611731;2.東莞成電金盤軟件技術(shù)有限公司,東莞 523808;3.四川大學華西婦產(chǎn)兒童醫(yī)院,成都 611731;4.電子科技大學廣東電子信息工程研究院,東莞 523808)
面向健康大數(shù)據(jù)的數(shù)據(jù)清洗技術(shù)
陳永紅1,2,廖欣3,鄭欣1,陳雷霆1,4
(1.電子科技大學計算機科學與工程學院,成都 611731;2.東莞成電金盤軟件技術(shù)有限公司,東莞 523808;3.四川大學華西婦產(chǎn)兒童醫(yī)院,成都 611731;4.電子科技大學廣東電子信息工程研究院,東莞 523808)
提出一套完整的健康大數(shù)據(jù)清洗方案。首先剔除原始數(shù)據(jù)集中的重復(fù)數(shù)據(jù),然后,對數(shù)據(jù)集進行完整性、有效性及一致性驗證,最后,使用基于密度的改進孤立點檢測算法剔除局部孤立點及全局孤立點。為驗證所提方案的有效性,使用Tri-training算法在健康大數(shù)據(jù)集上進相關(guān)實驗。實驗表明,所提數(shù)據(jù)清洗方案能夠同時識別局部孤立點和全局孤立點,從而顯著提高后續(xù)數(shù)據(jù)分類模型的性能。
基于健康大數(shù)據(jù)的關(guān)鍵共性技術(shù)研究的企業(yè)科技特派員工作站建設(shè)(No.2014A090906004)
隨著大數(shù)據(jù)時代的到來,海量數(shù)據(jù)的不斷劇增給醫(yī)療健康領(lǐng)域帶來了深刻變革[1]。醫(yī)療健康行業(yè)可通過大數(shù)據(jù)技術(shù)的支持,實現(xiàn)對現(xiàn)有資源的整合和重新調(diào)整,提高行業(yè)運行效率,挖掘產(chǎn)業(yè)巨大潛力[2]。然而現(xiàn)有的數(shù)據(jù)清洗技術(shù)方案對健康大數(shù)據(jù)適應(yīng)性較差,嚴重影響了數(shù)據(jù)挖掘的效率,因此,針對健康大數(shù)據(jù)的清洗已經(jīng)成為數(shù)據(jù)分析過程中必須面對的問題[3]。
原始采集的健康大數(shù)據(jù)通常具有不完整性、不一致性和內(nèi)容模糊性,很難能夠直接滿足數(shù)據(jù)分析的要求[4]。首先,健康大數(shù)據(jù)集中存在著大量的重復(fù)數(shù)據(jù),即在原始數(shù)據(jù)集中同一條數(shù)據(jù)出現(xiàn)了兩次或兩次以上[5]。其次,原始數(shù)據(jù)集中很多數(shù)據(jù)信息不全,存在某些記錄屬性值丟失的情況,造成數(shù)據(jù)不完整[6]。同時,由于健康大數(shù)據(jù)的多元采集方式,不同系統(tǒng)采集的數(shù)據(jù)缺乏統(tǒng)一標準的定義方式,導(dǎo)致各系統(tǒng)間的數(shù)據(jù)不一致。此外,大數(shù)據(jù)本身還存在著一部分不符合預(yù)先定義的規(guī)則或約束條件的數(shù)據(jù)和不符合一般模型的數(shù)據(jù),這些異常數(shù)據(jù)也會給后續(xù)的大數(shù)據(jù)分析造成干擾[7]。
針對健康大數(shù)據(jù)的清洗已經(jīng)成為大數(shù)據(jù)分析中必須面對的問題。通過分析健康大數(shù)據(jù)所面臨的挑戰(zhàn),針對其特點,提出一套完整的數(shù)據(jù)清理方案,并對相關(guān)算法進行了改進。實驗表明,該方案顯著提高了后續(xù)數(shù)據(jù)分類模型的性能。
本節(jié)針對現(xiàn)有算法進行改進,提出新的健康大數(shù)據(jù)清洗方案,使之能更有效地對健康大數(shù)據(jù)進行清洗。
2.1 數(shù)據(jù)清洗流程
所提數(shù)據(jù)清洗方案包含4個步驟:首先,檢查數(shù)據(jù)集,剔除重復(fù)數(shù)據(jù)。然后,對數(shù)據(jù)的完整性進行驗證,以提高分析結(jié)果的準確率。接著,對數(shù)據(jù)的有效性、一致性進行檢驗,從而降低不合格數(shù)據(jù)對后續(xù)數(shù)據(jù)分析造成的影響。最后,進行孤立點檢測。算法流程如圖1所示,具體步驟如下。
(1)清洗重復(fù)數(shù)據(jù)。在數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫時,使用主鍵和聯(lián)合主鍵唯一性限制,完成對重復(fù)數(shù)據(jù)的清洗。
(2)數(shù)據(jù)完整性檢查。對于含有缺損值的數(shù)據(jù)項,采用均值估算法處理,將該數(shù)據(jù)項前n位數(shù)據(jù)的均值作為其缺損值填補。
(3)數(shù)據(jù)有效性、一致性驗證。根據(jù)專家規(guī)則,確定各屬性項的合理取值范圍及統(tǒng)一標準的定義方式,對不同系統(tǒng)間的數(shù)據(jù)進行有效性和一致性檢驗,剔除不滿足約束條件的記錄,將不同定義方式的屬性項按專家規(guī)則進行統(tǒng)一。
(4)孤立點檢測及刪除。在數(shù)據(jù)數(shù)據(jù)清洗過程中,孤立點屬于干擾信息或異常數(shù)據(jù),需要刪除。通過孤立點檢測減少或消除孤立點,并避免有效信息丟失[8]。針對該步處理,提出基于密度的孤立點檢測改進算法,算法細節(jié)如2.2節(jié)所述。
圖1 大數(shù)據(jù)數(shù)據(jù)清洗算法流程
2.2 基于密度的孤立點檢測的改進算法
基于密度的孤立點檢測算法在孤立點檢測中得到了普遍應(yīng)用。該算法根據(jù)對象所處區(qū)域的密度來判定其是否為孤立點[9-10],對檢測局部孤立點有著很好的處理效果,然而對于全局孤立點卻不太敏感,無法有效檢測。其中,密度定義為到k個最近鄰的平均距離的倒數(shù)[11],密度較低區(qū)域中的對象即為孤立點。本文針對此缺陷以及健康大數(shù)據(jù)的特點對上述算法進行了改進,使之能同時識別局部孤立點和全局孤立點。改進孤立點算法的流程如圖2所示,具體步驟如下。
圖2 基于密度的孤立點檢測改進算法流程
(1)原始數(shù)據(jù)集的歸一化。健康數(shù)據(jù)各項參數(shù)的量綱不同,使用原始數(shù)據(jù)直接計算,會造成量綱較大的參數(shù)對結(jié)果的影響顯著提高,與實際情況不符。故在將原始數(shù)據(jù)集用于計算前,應(yīng)對數(shù)據(jù)集各數(shù)據(jù)項進行歸一化處理。
對原始數(shù)據(jù)集進行min-max標準化,使各屬性項值映射到[0,1]之間,轉(zhuǎn)換函數(shù)如下:
其中max是x所在列的最大值,min是x所在列的最小值。
(2)計算任意點Xi與其他點Yj的歐幾里得距離。Xi與Yj是m維空間內(nèi)的兩個點,它們的歐氏距離的計算方式如下:
(3)對Xi到其他點的歐幾里得距離進行升序排序,找到前k位的點(即離Xi最近的k個點),加入到Xi的k-鄰域 Ωik中,并得到 Xi的 k 距離 k-d(Xi)( k-鄰域中各點到Xi歐氏距離的最大值),即:
同時,找到最后n位的點(即離Xi最遠的n個點),加入到Xi的n-最遠域Ωik中,并給n-最遠域Ωik中各點的得票數(shù)加一,即:
這意味著對于Xi而言,離它最遠的這n個點最有可能成為全局孤立點。對于原始數(shù)據(jù)集而言,得票越高的點,成為全局孤立點的可能性越大。
(4)計算每個點Xi的可達密度。首先計算得到Xi的k-鄰域Ωik中每個點Zj的可達距離Reach()Zj:Zj的 k-距離與 Zj到 Xi的歐氏距離 d( )Xi,Zj的較大值,即:
隨后計算Xi的可達密度的 k-鄰域中每個點Zj的可達距離之和的倒數(shù)與k的乘積,即:
(5)計算Xi的局部離群點因子鄰域中各點的可達密度的可達密度的比值的均值,即:
(6)將各點的局部離群點因子進行排序,根據(jù)設(shè)定的閾值進行判定。設(shè)置局部離群點因子閾值VALUE與全局孤立點閾值Ticket,在第一次的篩選中,離群點因子大于VALUE的點即為局部離群點。
(7)在第二次的篩選中,得票數(shù)超過閾值Ticket的點即為全局孤立點。VALUE值與Ticket值的確定都與具體樣本的大小和取值分布有關(guān),經(jīng)過多次試驗,調(diào)整閾值,能夠較好的實現(xiàn)剔除局部和全局孤立點的目的。因子閾值VALUE和n、得票數(shù)Ticket,來識別局部孤立點和全局孤立點。各參數(shù)設(shè)定表4所示:
表2 原始算法數(shù)據(jù)清洗后部分數(shù)據(jù)表
3.1 實驗設(shè)置
(1)實驗數(shù)據(jù)
本實驗所用數(shù)據(jù)包括原始數(shù)據(jù)集、原始算法數(shù)據(jù)清洗后的數(shù)據(jù)集、改進算法數(shù)據(jù)清洗后的數(shù)據(jù)集。本文采取的原始數(shù)據(jù)集為肝病檢測指標數(shù)據(jù)集“Indian Liver Patient Dataset(ILPD)”,包含各項生理指標 11 項,經(jīng)過數(shù)據(jù)清洗后,剔除的異常點約占總數(shù)據(jù)的18%。
原始數(shù)據(jù)部分數(shù)據(jù)如表1所示:
表3 改進算法數(shù)據(jù)清洗后數(shù)據(jù)部分數(shù)據(jù)表
表1 原始數(shù)據(jù)集部分數(shù)據(jù)表
原始算法數(shù)據(jù)清洗過后部分數(shù)據(jù)如表2所示。
改進算法數(shù)據(jù)清洗過后部分數(shù)據(jù)如表3所示。
(2)關(guān)鍵參數(shù)設(shè)定
按照2.1中(1)-(3)中所述方法對原始數(shù)據(jù)集進行重復(fù)數(shù)據(jù)清理及完整性檢查、有效性和一致性的驗證后,將處理過后的數(shù)據(jù)用于改進后的孤立點檢測算法,進行孤立點檢測。在(4)中,分別設(shè)定參數(shù)k、離群點
表4 參數(shù)設(shè)定表
3.2 實驗結(jié)果及分析
本文采用Tri-training算法進行驗證。Tri-training是半監(jiān)督算法,通過訓練一部分有標簽數(shù)據(jù),給未標簽數(shù)據(jù)進行標記,然后使用測試數(shù)據(jù)檢驗其正確率[12],故而噪聲數(shù)據(jù)對其結(jié)果影響比較大。本文將實驗分為兩個部分,一部分為局部孤立點檢測部分,主要對比未數(shù)據(jù)清洗的錯誤率與原始算法(僅檢測局部孤立點)的錯誤率來驗證數(shù)據(jù)清洗方案的有效性;第二部分為在局部孤立點檢測過后的數(shù)據(jù)集上進行全局孤立點檢測,通過對比原始算法的錯誤率與改進算法后的錯誤率來驗證改進算法的有效性。
(1)局部孤立點檢測
由于當k與VALUE取值不當時,“孤立點”太多,造成過擬合,故經(jīng)試驗后,取k值為5到8,步長為1,VALUE從1.1到1.4,步長為0.05,經(jīng)Tri-training算法驗證的部分結(jié)果如表5(原始數(shù)據(jù)經(jīng)Tri-training算法驗證錯誤率為0.2906):
表5 原始算法驗證結(jié)果表
表6 改進算法驗證結(jié)果表
(2)全局孤立點檢測
根據(jù)上表,可以看到當k值不同時,所對應(yīng)的VALUE值不同,錯誤率也不同。當k值不同時,取使錯誤率最低的VALUE值,取n值為8到11,步長為1,固定Ticket值為10(由于當Ticket值過大時會造成部分全局孤立點無法被檢測出,Ticket值過小時,會有一部分非全局孤立點被誤認為是全局孤立點,且Ticket小范圍的變動對結(jié)果影響不大,經(jīng)試驗后當Ticket取值為10時能取得不錯的效果),經(jīng)Tri-training算法驗證的部分結(jié)果見表6。
調(diào)整各參數(shù)取值,使得在k取不同值時,錯誤率降到最低。改進算法前后最小錯誤率對比如圖3所示:
圖3 改進算法前后最小錯誤率對比圖
分析實驗部分(1)與(2)的結(jié)果可知,使用Tri-training對原始數(shù)據(jù)集、原始算法數(shù)據(jù)清洗后的數(shù)據(jù)集和改進算法數(shù)據(jù)清洗后的數(shù)據(jù)集進行驗證,最低錯誤率分別為:0.2906、0.1801、0.1111,因此,可得到如下信息:
首先,經(jīng)數(shù)據(jù)清洗后,最低錯誤率從0.2906降低到0.1801,降幅38.02%,驗證了數(shù)據(jù)清洗方案的有效性。故本文所提出的數(shù)據(jù)數(shù)據(jù)清洗方案有著較好的效果,數(shù)據(jù)清洗后的數(shù)據(jù)對大數(shù)據(jù)分析的性能有著顯著的提高。
其次,改進后的算法,經(jīng)參數(shù)調(diào)整后,最低錯誤率從算法改進前的 0.1801降低到了 0.1111,降幅38.31%,算法性能有著明顯的提升。證明了改進后的算法能夠很好的識別全局孤立點,并極大提高大數(shù)據(jù)分析的效果,驗證了改進算法的有效性。
本文將數(shù)據(jù)清洗技術(shù)應(yīng)用到健康大數(shù)據(jù)上,首先介紹了健康大數(shù)據(jù)所面臨的挑戰(zhàn),然后根據(jù)其特點提出了一套完整可行的大數(shù)據(jù)清理方案,并針對該方案中孤立點檢測算法所存在的不足進行改進,在檢測局部孤立點的同時也能檢測出全局孤立點。最后通過使用基于Tri-training的半監(jiān)督分類模型進行檢驗,實驗結(jié)果驗證了該健康大數(shù)據(jù)清洗方案的可行性與改進算法的有效性。
參考文獻:
[1]卿蘇德,吳博.大數(shù)據(jù)時代亟需強化數(shù)據(jù)清洗環(huán)節(jié)的規(guī)范和標準[J].世界電信,2015(7):55-60.
[2]陽娜.大數(shù)據(jù)助力健康產(chǎn)業(yè)之路[J].金融世界,2015(7):106-107.
[3]黃健青,黃浩.Web日志分析中數(shù)據(jù)數(shù)據(jù)清洗的設(shè)計與實現(xiàn)[J].河南科技大學學報自然科學版,2009,30(5):45-48.
[4]Groves P,Kayyali B,Knott D,et al.The"Big Data"Revolution in Healthcare.Accelerating Value and Innovation[J].Mckinsey&Company,2013:4,13-16.
[5]欒江.數(shù)據(jù)質(zhì)量控制:數(shù)據(jù)數(shù)據(jù)清洗研究、設(shè)計與實現(xiàn)[D].四川大學,2004.
[6]梅亮,葛世倫,閆仁武.數(shù)據(jù)清洗技術(shù)在餐飲營業(yè)數(shù)據(jù)庫中的實證應(yīng)用[J].計算機與信息技術(shù),2009(9):32-34.
[6]Wang X,Zhang A D,Yan J.Application Prospects of Big Data in Healthcare[J].Chinese General Practice,2015.
[7]鄢團軍,劉勇.孤立點檢測算法與應(yīng)用[J].三峽大學學報(自然科學版),2009,31(1):98-103.
[8]Shi H J,Zhou S Y,Xing-Yi L I,et al.Average Density-Based Outliers Detection[J].Journal of University of Electronic Science&Technology of China,2007,36(6):1286-1285.
[9]祝世東,李卓玲.數(shù)據(jù)挖掘的異常檢測技術(shù)分析[J].沈陽工程學院學報(自然科學版),2009,5(3):265-268.
[10]王重陽,無線傳感器網(wǎng)絡(luò)中基于多屬性的異常檢測技術(shù)的研究[D].東北大學,2008.
[11]DENG Chao,GUO MaoZu.Tri-Training and Data Editing Based Semi-Supervised Clustering Algorithm[J].軟件學報,2008,19(3):663-673.
Data Cleaning Technology Oriented Health Big Data
CHEN Yong-hong1,2,LIAO Xin3,ZHENG Xin1,CHEN Lei-ting1,4
(1.College of Computer Science and Engineering,University of Electronic Science and Technology of China,Chengdu 611731;2.Dongguan ChengDian gold plate software Technology Co.,Ltd,Dongguan 523808;3.West China Second University Hospital.SU,Chengdu 611731;4.University of Electronic Science and Technology of Dongguan Electronic Information Engineering Research Institute,Dongguan 523808)
Presents a complete scheme of health data cleaning.The scheme removes the duplicate data from the original data set first,then,verifies the integrity,validity and consistency of data set,finally,uses the density-based improved isolated point detection algorithm to eliminate lo?cal isolated points and global isolated points.To verify the effectiveness of the proposed scheme,uses the Tri-training algorithm to perform experiments on big healthy data set.Experiments show that the proposed data cleaning scheme can simultaneously identify local isolated points and global isolated points,and significantly improves the performance of the subsequent data classification model.
陳永紅(1992-),男,湖北仙桃人,碩士研究生,研究方向為大數(shù)據(jù)分析、機器學習
陳雷霆(1966-),男,重慶人,教授/博導(dǎo),研究方向為計算機圖形學、數(shù)字媒體技術(shù)、虛擬現(xiàn)實技術(shù)、數(shù)字圖象處理,
E-mail:richardchen@uestc.edu.cn
2017-04-25
2017-06-10
1007-1423(2017)17-0021-05
10.3969/j.issn.1007-1423.2017.17.004
健康大數(shù)據(jù);數(shù)據(jù)清洗;數(shù)據(jù)清洗;孤立點檢測
廖欣(1981-),女,四川成都人,主診醫(yī)師,碩士,研究方向為婦產(chǎn)科臨床病理診斷、人工智能在疾病診斷、病理分析中的應(yīng)用
鄭欣(1981-),男,四川綿陽人,博士后,研究方向為大數(shù)據(jù)分析、人工智能、機器學習。
Health Big Data;Preprocessing;Data Cleaning;Outlier Detection