戴炳榮 王曉麗 李 超 陳 潔 施天行
1(上海計算機軟件技術開發中心 上海 201112)2(上海市浦東衛生發展研究院 上海 200129)
?
一種基于PCA-SVM的醫療衛生數據挖掘分類方法
戴炳榮1王曉麗2*李超1陳潔2施天行2
1(上海計算機軟件技術開發中心上海 201112)2(上海市浦東衛生發展研究院上海 200129)
當前醫療衛生數據呈現量大、種類多、特征混雜等特點,為數據挖掘分類帶來一定的挑戰。針對醫療衛生數據的這些特點,提出一種基于主成分分析和支持向量機相結合的數據挖掘分類方法,重點研究該方法的算法模型,以及在醫療衛生領域的具體實現,并在MATLAB環境下利用Cardiotocography數據集和Breast Cancer數據集進行了仿真實驗。實驗結果表明,該方法的分類效果較好,為當前醫療數據挖掘分類提供了一種可行的思路。
醫療衛生數據數據挖掘主成分分析支持向量機
隨著醫療衛生信息化建設的快速發展,數字化的醫療儀器及設備越來越多地投入使用。信息化建設的系統在各級醫院、社區衛生服務中心以及其他各類醫療衛生服務機構鋪展開來,使得醫療機構累積了大量的病人信息、治療檢驗、病史等數據。這些混雜的海量醫療衛生數據中蘊含著許多有價值的信息,亟需挖掘和提取。如何從這些醫療衛生數據中挖掘出有價值的信息,成為了當前醫療衛生領域的研究熱點[1]。
目前,數據挖掘在醫療衛生領域建立了較多應用,主要集中在醫學質量管理、藥物的研發以及輔助診斷等方面。研究者從整個流程的不同階段及角度分別進行了相應研究,如數據挖掘過程中的預處理、分類和分析等。文獻[2]研究了數據挖掘過程中的預處理技術,其有助于識別及篩選出較為可靠的數據,根據這些預處理后的數據進行統計分析,從而得到的結果較為真實和準確。文獻[3]利用K-means算法,從醫院病案庫信息系統中挖掘病人住院醫療費用、年齡和住院時間的相互內在聯系,進而尋找其中的規律知識。文獻[4]建立了基于SPRINT算法的疾病復發危險因素分析模型,通過該模型運算及分析,尋找和得出疾病的臨床診斷、治療和預后之間的關系。但是,從醫療衛生數據分析挖掘過程來看,這些研究分別聚焦在數據噪聲的預處理和后續的挖掘分析算法等方面,未能從分析挖掘模型的整體結構和流程上進行梳理、研究、應用。
如何在面向醫療衛生領域數據挖掘的整個過程中,對數據集進行特征降維,減少醫療衛生數據本身的噪聲、去除數據集中冗余信息,同時結合有效的數據挖掘方法進行分類分析是值得研究的問題。
面向醫療領域的數據挖掘分為醫療衛生數據采集匯聚、醫療衛生數據抽取、醫療衛生數據預處理、數據分析處理以及結果分析展示等過程,如圖1所示。

圖1 面向醫療衛生領域的數據挖掘流程圖
醫療衛生數據來源是各醫療衛生服務機構建設的信息化系統,主要有HIS(醫院信息系統)、LIS(實驗室信息系統)、PACS(醫學影像存檔與通信系統)等。這些系統收集和記錄著詳細的病人信息、疾病診斷治療等數據,是醫療衛生信息化建設的重要成果。
經過數據的采集匯聚,各信息化系統的醫療衛生數據匯聚到一系列醫療衛生數據庫中。這些數據按照業務在同一邏輯架構下進行管理,包括病人信息、疾病診斷說明、檢驗檢測數據等,需要進行降噪等預處理以及后續的分類分析后才能得到更有用的信息。
數據抽取轉換是醫療衛生數據分析挖掘的重要基礎。醫療衛生機構各個子系統匯聚了各種各樣的數據,針對特定的醫療問題分析或挖掘場景,需要抽取相關的數據信息,這些數據來自于各個子系統匯聚到的醫療衛生數據庫。經過對匯聚的醫療衛生數據進行抽取,形成面向主題的醫療衛生主題數據庫。這些數據按照主題進行存儲和管理,能夠更好更方便地支持分析挖掘應用。
數據預處理是決定整個醫療衛生知識探求成功與否的重要一步。醫療衛生數據庫數據量較大,結構多樣化,有結構化、半結構化以及非結構化數據,且經常不完整,有數據缺失,還包含有冗余信息,所以在進行數據挖掘工作前,需要數據的預處理操作。數據預處理的方法主要有數據清理、數據集成、數據選擇、數據變換以及數據特征降維等操作。
數據分析處理是醫療衛生數據挖掘的關鍵步驟。數據分析處理的核心是數據挖掘算法模型的建立,常用的數據挖掘算法有神經網絡、決策樹、邏輯回歸、K-means聚類算法、SVM等[5]。K-means、決策樹、BP神經網絡理論等算法在醫療衛生數據挖掘中已有較多應用,文獻[6-8]分別對這三種算法在醫療衛生領域的應用開展了相關研究并取得了一定成果。
醫療衛生數據挖掘過程的核心步驟是數據挖掘算法模型。數據挖掘算法在醫療衛生領域已有較多的應用,較為常見的有神經網絡算法、決策樹算法以及SVM算法等。如何找出相對最優數據域處理與挖掘算法模型是本文關注的重點。本節將結合醫療衛生數據的特點,重點分析在數據預處理階段的PCA算法以及面向數據分析處理階段的SVM算法,并結合這兩種方法提出了一種面向醫療衛生領域的PCA-SVM算法模型。
2.1PCA算法簡介
主成分分析PCA是一種對數據樣本中的信息進行處理、壓縮和抽提的方法。PCA的思想是將原始數據樣本的n維特征映射到k維上(k 通過主成分分析,原先高維的醫療衛生數據集可以根據需要進行降維,提取數據中相對影響較大的主要的那部分特征,有利于提高后續數據挖掘的質量。 2.2SVM算法簡介 支持向量機SVM是一個有監督的學習模型,主要應用在模式識別、分類以及回歸分析等領域。它的建立基于結構風險最小化原則,基礎則是統計學習理論。支持向量機在樣本信息有限的情況下,在模型的復雜性和學習能力之間尋找最佳折中,從而獲得最優的推廣性能[10]。支持向量機建立一個決策曲面,該決策曲面即為分類超平面,進而最大化正例和反例之間的隔離邊緣,實現決策效果。 學習機器在測試數據上的誤差率是以兩個參數的和為界。這兩個參數一個稱為訓練誤差率,另一個為依賴項,該項依賴于VC維數。在數據可分的情況下,對于前一項,支持向量機把它置為零,后一項則被最小化。支持向量機泛化能力較好,這個特性使得其在模式分類的問題上更有競爭力,是當前應用較多的數據挖掘分類方法。 2.3PCA-SVM模型概述 醫療衛生數據不僅量大,而且有些維數較高,直接進行處理不僅較為不便,而且有些數據特征并不會對數據挖掘的結果起到積極的作用。PCA方法可以很好地起到數據降維等作用,去除這些影響小的特征有利于更好地進行數據挖掘工作,提高數據挖掘質量和效率。SVM算法根據預處理后的訓練樣本訓練得到數據挖掘模型,在此過程中,通過參數的調節等得到最優算法模型。然后可以利用此模型進行數據挖掘工作,進行結果評估和展示。 本文結合這兩種算法的特點,在醫療衛生數據的調研分析基礎上,提出了一種基于PCA-SVM的算法模型。首先利用PCA算法對樣本數據集進行降維處理,選取合適的樣本特征得到新的樣本數據集;然后使用SVM算法進行分類分析。整個流程如圖2所示。 圖2 基于PCA-SVM的分類方法流程圖 由圖2可知,原始數據的p維特征經PCA算法預處理后降為k維特征,得到維數低、數據量小的新數據集。新數據集通過SVM分類器的處理后得出最終的分類計算結果。SVM分類器的分類模型具有學習機制,在啟動分類分析前需要使用一定量的樣本數據對SVM分類器進行訓練,從而得到最優SVM分類器。 3.1采用PCA進行醫療衛生數據預處理操作 我們采集n個病人的某種疾病數據樣本,每個樣本有p項診斷或檢查指標。這些指標數量較多,需要進行預處理,降低數據冗余,同時可以降低數據計算量,提高數據處理效率。通過主成分分析進行降維的步驟如下: (1) 原始指標數據的標準化 現有采集到的n個某種疾病的病人診斷或檢查樣本,每個樣本有p項疾病指標,可得原始數據矩陣X=(Xij)n×p,i=1,2,…,n表示n個病人樣本,j=1,2,…,p表示p個疾病指標項,xij是具體的值,它表示的是第i個病人樣本的第j項疾病指標值。 對數據進行標準化變換,這里我們采用Z-score法,變換公式如下: (2) 求指標數據的相關矩陣 R=(rjk)p×p,j=1,2,…,p;k=1,2,…,p,rjk是一個相關系數,表示的是疾病指標j與疾病指標k的相關系數。 其中: (2) (3) (4) (5) 有rii=1,rjk=rkj,i=1,2,…,n;j=1,2,…,p;k=1,2,…,p。 (3) 根據相關矩陣,確定各個主成分 由特征方程式|λIp-R|=0,可知其p個特征根。這p個特征根為λg(g=1,2,…,p),將這些特征根按遞減的順序排列為λ1≥λ2≥…≥λp≥0,它表示的是主成分的方差,它的大小表示的是這些主成分在描述被評價對象上所起作用的大小。由特征方程式可得,每一個特征根相對應一個特征向量Lg(Lg=lg1,lg2,…,lgp),g=1,2,…,p。 這里我們得到主成分由標準化之后的指標變量得來:Fg=lg1Z1+lg2Z2+…+lgpZp(g=1,2,…,p) ,這里F1、F2、Fp分別稱為第一、第二、第p主成分。 (4) 主成分個數的確定 (5) 綜合評價k個主成分 我們首先求出每一個主成分的線性加權值,如下所示: Fg=lg1Z1+lg2Z2+…+lgpZp (6) 3.2利用SVM算法實現分類 假設X為預處理后的醫療衛生數據集,也稱為輸入向量,xi為支持向量,K為核函數。構造SVM學習算法的關鍵是支持向量和輸入向量的內積核。SVM是由小的子集構成,這些子集由算法從訓練數據中來抽取。SVM算法步驟為: (1) 數據集的準備 首先按照其軟件包所要求的格式準備好數據集,把樣本數據集分為訓練集和測試集以及訓練集標簽和測試集標簽。 (2) 數據預處理,對數據進行簡單的縮放操作 為提高分類準確度,需要對訓練集和測試集進行數據歸一化預處理,采用如下公式所示的歸一化映射: (7) 式中,x,y∈Rn,xmin=min(x),xmax=max(x)。這一步使得原始數據被規整到[0,1]范圍內,即y∈[0,1],這種歸一化方式稱之為[0,1]區間歸一化。 (3) 考慮選用核函數類型 SVM的核函數有多種,這里我們選擇RBF(徑向基)核函數。函數公式如下: K(x,xi)=exp(-γ‖x-xi‖2)γ>0 (8) (4) 選擇分類器的最佳參數c和g 我們在K-CV情況下獲得c和g的最佳參數,這里K取5,就是嘗試各種可能的(c,g)組合值,然后進行交叉驗證,找出使交叉驗證精讀最高的(c,g)組合。 (5) 帶入訓練樣本集獲取SVM模型 參數c和g得到后,帶入到軟件包中,便可以訓練出SVM模型。 (6) 利用獲取的模型進行挖掘分析,得到結果 利用訓練好的最優算法模型,對PCA處理后的數據集進行挖掘分析,并對結果進行評估和展示。 4.1實驗環境及數據 本文實驗環境采用Windows操作系統,在Matlab 2010b環境下使用LIBSVM軟件包進行仿真實驗。數據集采用了Cardiotocography數據集和Breast Cancer 數據集,可在http://archive.ics.uci.edu/ml/datasets.html上獲取。兩個數據集的說明如下: Cardiotocography數據集來自波爾圖醫學院,共有2126個樣本數據,每個數據集有23個特征。取1600個樣本作為訓練數據集,其余的作為測試集,測試分類效果。數據集中的數據是測量胎心產力圖的胎心率和宮縮得到的,由專業的產科醫師對其進行了分類。最終根據胎兒的情況這些樣本數據被分成了3類,分別為normal(正常的)、suspect(疑似的)、pathologic(病態的)。Cardiotocography數據集可視化如圖3所示。 圖3 Cardiotocography 數據集可視化圖 Breast Cancer數據集來自威斯康星大學,共有569個樣本。其中取469個樣本作為訓練樣本,訓練SVM分類器,其余100個樣本作為測試樣本,測試分類效果。該數據集的每個樣本代表一個乳腺癌病例的隨訪數據,這些病例數據分為malignant(惡性)、benign(良性)兩種。Breast Cancer數據集可視化如圖4所示。 圖4 Breast Cancer數據集可視化圖 4.2實驗過程及結果 針對兩個數據集,利用主成分分析法分別對數據集進行預處理。每個數據集上選取k個主成分,k值由方差貢獻率來確定,這里我們選取方差貢獻率不小于85%的k個指標,完成了主成分分析,得到兩個新的數據集。接下來分別對兩個數據集進行劃分,分別拆分為訓練集和測試集。為提高效率,首先要對訓練集和測試集統一進行歸一化處理,之后就是用訓練集對SVM分類器進行訓練,用得到的SVM模型對測試集進行標簽測試。最后對Cardiotocography 數據集和Breast Cancer數據集進行分類。 在進行1000次循環實驗的情況下,Cardiotocography 數據集和Breast Cancer數據集分類的平均準確率分別為91.5%和97.8%。每個數據集的詳細分類信息如表1和表2所示。 表1 Cardiotocography data set詳細分類信息 表2 Breast Cancer data set詳細分類信息 表1中每個值代表該數據集中的三類數據(正常、疑似、病態)經過上述1000次循環實驗后被分到相應類別數據中的概率。例如:“正常”類別的數據被成功識別分到“正常”類別的概率為99.2%,錯分到“疑似”類別的概率為0.6%,錯分到“病態”類別的概率為0.1%。通過表1可知,在本文仿真實驗循環1000次的測試下,Cardiotocography data set中樣本類別為正常的數據樣本分類正確率為99.2%,類別為疑似的數據樣本分類正確率為90.3%,而類別為病態的數據樣本分類正確率為88%。 表2中每個值代表該數據集中的兩類數據(惡性、良性)經過上述1000次循環實驗后被分到相應類別數據中的概率。例如:“惡性”類別的數據被成功識別分到“惡性”類別的概率為95.5%,錯分到“良性”類別的概率為4.5%。通過表2可知,在本文仿真實驗循環1000次的測試下,Breast Cancer dataset中乳腺病例類別為惡性的數據樣本分類正確率為95.5%,而類別為良性的數據樣本分類正確率為99.1%。 本文基于醫療衛生數據的數據量大、特征復雜、維數高等特點,提出了一種基于PCA-SVM的數據挖掘分類方法。該方法從數據分析挖掘的整個過程進行了分析,首先對數據進行主成分分析,選取具有代表性的特征,其次利用SVM算法對數據集進行建模,利用分類模型獲得最后的分類計算結果。通過對Cardiotocography數據集和Breast Cancer數據集的分類仿真實驗表明,本方法分類準確率較高,為醫療數據挖掘分類研究提供了一種新的思路和方法。 [1] 王學松,郭強.醫療數據分析及數據挖掘方法的應用[J].電子技術與軟件工程,2014,21(2):218-219. [2] 陳霞,邱桃榮,魏玲玲,等.基于數據挖掘的病例數據預處理[J].計算機與現代化,2007,32(5):23-24. [3] 戴子卿,陳俐,鄒郢,等.基于聚類方法的醫療費用數據挖掘研究[J].中國病案,2014,15(10):66-68. [4] 鄭丹青.基于SPRINT算法的胃癌臨床醫療數據挖掘研究[J].吉林師范大學學報:自然科學版,2012,5(2):121-124. [5] 鄒志文,朱金偉.數據挖掘算法研究與綜述[J].計算機工程與設計,2005,26(9):2304-2307. [6] 韓紅霞. 醫療費用支付影響因素差異性研究[D].吉林:吉林大學,2014. [7] 劉昆,劉業政.基于決策樹的醫療數據分析[J].計算機工程,2002,28(2):41-43. [8] 楊超.基于BP神經網絡的健康保險欺詐識別研究[D].青島:青島大學,2014. [9] Sch?lkopf B, Smola A, Müller K R. Nonlinear component analysis as a kernel eigenvalue problem[J].Neural Computation, 1998,10(5):1299-1319. [10] Graziella Orrù, PetterssonYeo W, Marquand A F, et al. Using Support Vector Machine to identify imaging biomarkers of neurological and psychiatric disease: A critical review[J].Neuroscience & Biobehavioral Reviews,2012,36(4):1140-1152. A MINING AND CLASSIFICATION METHOD FOR MEDICAL DATA BASED ON PCA-SVM Dai Bingrong1Wang Xiaoli2*Li Chao1Chen Jie2Shi Tianxing2 1(ShanghaiDevelopmentCenterofComputerSoftwareTechnology,Shanghai201112,China)2(ShanghaiPudongResearchInstituteofHeathDevelopment,Shanghai200129,China) Current medical data presents the characteristics of large amount, various categories and complicated features, which bring certain challenge to data mining. According to these characteristics of medical data, we propose a data mining and classification method which is based on principal component analysis (PCA) and support vector machine (SVM), and elaborately study the algorithm model of this method and its specific implementation in medical and health sector. In the MATLAB environment we use two datasets of Cardiotocography dataset and Breast Cancer dataset to carry out simulation experiments. It is indicated by experimental results that the method has good classification effect provides a feasible thought for current medical data mining and classification. Medical dataData miningPrincipal component analysisSupport vector machine 2015-03-04。浦東新區衛生系統學科帶頭培養計劃(PWRd2014-12);上海市科技創新行動計劃項目(13dz1508500);院地合作專項(13DZ1512103,13DZ1512101);上海市軟科學研究計劃項目(14692103000)。戴炳榮,碩士,主研領域:云計算,大數據,數據中心自動化。王曉麗,高工。李超,助理工程師。陳潔,助理工程師。施天行,助理工程師。 TP3 A 10.3969/j.issn.1000-386x.2016.08.015
3 PCA-SVM算法在醫療衛生領域的應用分析


4 實驗結果及結論




5 結 語