吳尚智,周 運(yùn),夏 寧,王旭文,張 帆
(1.西北師范大學(xué)計算機(jī)科學(xué)與工程學(xué)院,甘肅蘭州 730070;2.廣東工商職業(yè)技術(shù)大學(xué)計算機(jī)學(xué)院,廣東肇慶 526020)
病毒性肝炎作為目前流行病學(xué)研究的一類易感染疾病,具有極強(qiáng)的傳染性,在我國乃至整個世界上都有著很高的關(guān)注度[1].人類肝炎病毒有甲型、乙型、丙型、丁型和戊型等之分.肝炎病毒進(jìn)入人體免疫組織,會導(dǎo)致肝臟組織細(xì)胞壞死,輕者會誘發(fā)炎癥,早期借助藥物可以完成治療,如果患者因不知情而拖沓病情,導(dǎo)致病患加重,會進(jìn)一步誘發(fā)肝纖維化、肝癌等[2].患病程度嚴(yán)重的患者只能通過手術(shù)切除病變組織或者更換器官,無疑會加重肝病患者治療過程中的痛苦,手術(shù)前后需要配合高昂的藥物治療,對于醫(yī)護(hù)人員而言,治療期限的延長無疑加重工作負(fù)擔(dān).劉紅楊等[3]利用差分自回歸移動平均與廣義回歸神經(jīng)網(wǎng)絡(luò)組合模型,針對丙型肝炎月發(fā)病率完成預(yù)測.實(shí)驗(yàn)中,將ARIMA模型擬合值作為GRNN模型的輸入,實(shí)際值作為GRNN模型的輸出,對樣本進(jìn)行訓(xùn)練和預(yù)測.Lu等[4]先用主成分分析法對光譜數(shù)據(jù)做特征提取,與循環(huán)神經(jīng)網(wǎng)絡(luò)相結(jié)合,對499名健康人和435名HBV患者進(jìn)行試驗(yàn).與此同時,與K近鄰算法、支持向量機(jī)、隨機(jī)森林等算法做對比,試驗(yàn)準(zhǔn)確率為96.15%,且算法運(yùn)行穩(wěn)定.Ebrahimi等[5]利用離散小波變換(DWT)對初始數(shù)據(jù)集進(jìn)行多級分解,線性判別分析方法進(jìn)行數(shù)據(jù)降維預(yù)處理,并提出了利用小波神經(jīng)網(wǎng)絡(luò)、不同參數(shù)的支持向量機(jī)對HCV患者預(yù)測,小波神經(jīng)網(wǎng)絡(luò)預(yù)測準(zhǔn)確率為97.14%,支持向量機(jī)為98.57%.Wang等[22]提出了基于粗糙集與支持向量機(jī)的肝炎診斷方法,知識約簡得到的多個屬性子集,隨后通過組選擇算法得到了所需數(shù)據(jù)集,結(jié)果表明RS+SVM組合算法分類準(zhǔn)確率為90.7%,與決策樹算法、神經(jīng)網(wǎng)絡(luò)(NN)做t檢驗(yàn),P值均小于0.05.Polat等[23-24]對病毒性肝炎進(jìn)行醫(yī)療決策,并記錄多位學(xué)者應(yīng)用的機(jī)器學(xué)習(xí)算法模型,如LDA、ASR、1-NN、MLP,算法模型就對分類準(zhǔn)確率給出對比結(jié)果.上述研究表明,針對病毒性肝病識別和分類的研究已有些成果,但是,電子病歷在臨床記錄過程中,研究人員因?yàn)楦M(jìn)不及時、病因特征值缺失等因素,導(dǎo)致數(shù)據(jù)具有不確定性、強(qiáng)干擾性,這需要確保高維度樣本具有很好的醫(yī)療決策效果.
文中提出將粗糙集和RBF神經(jīng)網(wǎng)絡(luò)結(jié)合的方法應(yīng)用于病毒性肝炎醫(yī)療決策分析中,為證明RBF神經(jīng)網(wǎng)絡(luò)對屬性約簡后的病毒性肝炎仍然具有很好的預(yù)測效果,文中借助分類準(zhǔn)確率和運(yùn)行時間等評價指標(biāo)給出了實(shí)驗(yàn)結(jié)果.
粗糙集(Rough set,RS)作為數(shù)值分析理論由Pawlak于1982年提出,用于處理模糊和不確定性知識的數(shù)學(xué)工具[6].
定義1知識與知識庫[7]所研究對象組成的非空有限集合構(gòu)成論域U,對?X?U,稱為U中一個概念(包括空集?),論域中任何概念族通常簡稱知識.對于一個完整的知識表達(dá)系統(tǒng),即為一個知識庫.
粗糙集理論中,將信息表知識表達(dá)系統(tǒng)定義為S=U,R,V,f,其中U為論域;R=C∪D為屬性集合(C為條件屬性集,D為決策屬性集為屬性值的集合(Vr為屬性r的值域);f:U×RV為一個映射函數(shù),通過函數(shù)f可以確定U中每一個對象Xt的屬性值.
定義2上近似和下近似[7]根據(jù)X關(guān)于屬性集合R的下、上近似值概念,定義
定義3知識的核[8]知識庫K(U,R),屬性集合R=C∪D,核描述為所有約簡的交集,若有一等價關(guān)系族P∈R,滿足core(R)=∩red(P),則記為等價關(guān)系族集P的核.簡單來說,核即為等價關(guān)系族中所有重要屬性的集合.
定義4約簡[9]決策表S=(U,C∪D),其中屬性C∪D=Φ.令Φ?X?C,Φ?Y?D,U/Y≠U/δ={U}(δ是全體劃分).若有X0?X滿足:①SX0(Y)=SX(Y),即決策屬性Φ?Y?D關(guān)于條件屬性Φ?X?C的支持子集相等于決策屬性Y?D關(guān)于條件屬性X0?X的支持子集;②SX(Y)?SX(Y),若X′?X0?X.
按照上述描述,總能找到X的一個極小子集X0,即稱X0是X的一個約簡.空集?的約簡為?.
在粗糙集理論中,用上下近似集對不精確范疇近似定義,通過對模糊、不確定知識以集合定義、逼近方式達(dá)到知識判斷的目的.信息熵是系統(tǒng)不確定信息的量化指標(biāo)[6].通俗說,熵越大,事件發(fā)生概率越低,表明信息所攜帶的不確定性越大;熵越小,結(jié)論與前述相反.
設(shè)有隨機(jī)試驗(yàn),X1,X2,…,Xn是論域U的一個劃分,實(shí)驗(yàn)結(jié)果中每個Xi有概率pi=P(Xi)出現(xiàn),簡記X=(p1,p2,…,pn).信息源X的信息熵定義為[6]
(3)
條件熵:知識Q相對于知識P的條件熵定義為[10]:
徑向基(Radial basis function,RBF)神經(jīng)網(wǎng)絡(luò)作為現(xiàn)今數(shù)據(jù)預(yù)測應(yīng)用領(lǐng)域的分類工具,它屬于一種3層前向型神經(jīng)網(wǎng)絡(luò):輸入層、隱含層、輸出層[11],如圖1所示:第1層為輸入層,文中該層接收多維醫(yī)療數(shù)據(jù)的特征向量,網(wǎng)絡(luò)結(jié)構(gòu)的輸入節(jié)點(diǎn)總數(shù)即代表著輸入數(shù)據(jù)的維數(shù).在徑向基神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中,輸入層與第2層的隱含層間是非線性映射,即M維數(shù)據(jù)直接非線性映射至第2層.更重要的是,隱含層主要是對神經(jīng)元傳遞函數(shù)的選擇,文中采用表述正態(tài)分布的高斯函數(shù),該密度函數(shù)定義形式為[12]
圖1 徑向基神經(jīng)網(wǎng)絡(luò)拓?fù)?/p>
其中,X為網(wǎng)絡(luò)的輸入樣本;ci為徑向基函數(shù)數(shù)據(jù)中心值;σi為數(shù)據(jù)寬度.
神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中最后是輸出層,它與第2層通過權(quán)值連接,即這兩層間采用線性映射的方式建立連接關(guān)系.徑向基神經(jīng)網(wǎng)絡(luò)輸出層為隱層節(jié)點(diǎn)輸出的線性組合[13]:
(6)
其中,wik為網(wǎng)絡(luò)權(quán)值;U=(u0,u1,u2,…,uk)T為隱層節(jié)點(diǎn)輸出;θk為輸出層閾值.
為提高病毒性肝炎醫(yī)療診斷準(zhǔn)確性,文中在缺失數(shù)據(jù)處理、原始數(shù)據(jù)集屬性約簡、預(yù)處理后的樣本訓(xùn)練等3個方面進(jìn)行研究.
1)缺失數(shù)據(jù)處理.為保證病毒性肝炎醫(yī)療數(shù)據(jù)的完整性,進(jìn)一步提高醫(yī)療決策的準(zhǔn)確率,文中選用分段線性插值法填充缺失值,線性插值法能夠利用兩個對象間的線性關(guān)系尋找逼近數(shù)值,具有簡單快捷的優(yōu)點(diǎn),避免缺失數(shù)據(jù)對醫(yī)療數(shù)據(jù)集決策屬性分類的影響.
2)原始數(shù)據(jù)集屬性約簡.醫(yī)療數(shù)據(jù)往往有著高維屬性集合,通過K-Means算法對連續(xù)型數(shù)值樣本離散化處理,提取知識形成決策表;基于條件信息熵的粗糙集特征選擇,剔除條件屬性中冗余屬性,在保證分類能力不變的前提下,使得最小約簡集合同原始數(shù)據(jù)具有相同的決策能力.
3)樣本訓(xùn)練.數(shù)據(jù)預(yù)處理后的醫(yī)療數(shù)據(jù)選擇徑向基神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練,最后根據(jù)訓(xùn)練結(jié)果實(shí)現(xiàn)病毒性肝炎醫(yī)療決策分析.
首先選取病毒性肝炎醫(yī)療數(shù)據(jù)樣本,構(gòu)建原始決策表,使用分段線性插值方法填充缺失值;其次,設(shè)置K-Means方法[14]的迭代求解次數(shù)、聚類數(shù)目,使用基于距離的聚類分析算法分配對象;然后,用基于條件信息熵的啟發(fā)式知識約簡算法對已經(jīng)離散化后的決策表屬性約簡,剔除冗余屬性.最后將約簡的最小屬性集作為RBF神經(jīng)網(wǎng)絡(luò)輸入層指標(biāo),決策屬性D作為輸出指標(biāo),RBF神經(jīng)網(wǎng)絡(luò)作為能夠擬合任何函數(shù)的多層前饋型局部逼近網(wǎng)絡(luò),對高維度醫(yī)療數(shù)據(jù)做二分類類別預(yù)測.文中提出的粗糙集和RBF神經(jīng)網(wǎng)絡(luò)組合模型流程圖如圖2所示.
圖2 RS+RBP神經(jīng)網(wǎng)絡(luò)建模流程
基于條件信息熵的約簡算法將條件熵作為啟發(fā)知識,針對不一致信息決策表,以決策表核為出發(fā)點(diǎn),從非核屬性集att中依次挑選剩余屬性集合,條件熵較小屬性移入核屬性集core,并隨之將先前挑選出的屬性從非核屬性集att中剔除.特殊情況下,可能發(fā)生多個屬性含有相同決策的參考重要度,此時,則選擇與約簡結(jié)果集B組合數(shù)最小的屬性.若核屬性集合存在,屬性約簡后的結(jié)果集條件熵H(D|B)=H(D|C),集合B便存放著試驗(yàn)結(jié)果集.
算法時間復(fù)雜度主要是通過可辨識矩陣計算決策表核,以及從非核屬性集att中依次計算決策屬性D相對每個條件屬性core∪{Vi}的條件熵.步驟1~5為屬性約簡描.
步驟1.求解全局條件熵H(D|C),用于終止條件的判斷.同時,對離散化后的決策表S,分別設(shè)置核屬性集core和非核屬性集att為空集.
步驟2.計算可辨識矩陣[15],挑選決策屬性不等時條件屬性組合數(shù)目為1的屬性作為核.算法開始,令約簡結(jié)果集B=core.
步驟3.從非核屬性集att中挑選每個屬性Vi∈att,計算條件熵H(D|B∪{Vi}).
步驟4.尋找出條件熵最小的那個屬性(熵越小,表示含有的信息不確定性越小).每挑選出一個核屬性Vi,即將該屬性從非核屬性集att中減去.
步驟5.挑選完整條件屬性集合后,記錄核屬性集合B.終止條件是判斷初始條件屬性集合的條件熵相等于約簡后屬性集合的條件熵,若H(D|C)=H(D|B),任務(wù)完成,否則轉(zhuǎn)到步驟2.
原始決策表中樣本經(jīng)線性插值填充缺失值、離散化預(yù)處理后,再使用基于條件熵的屬性約簡算法,剔除決策系統(tǒng)中具有不確定、模糊的樣本,約簡后的樣本集合結(jié)合泛化性能、容錯能力強(qiáng)的RBF網(wǎng)絡(luò).文中選取梯度下降法訓(xùn)練前向型徑向基神經(jīng)網(wǎng)絡(luò),獲得神經(jīng)網(wǎng)絡(luò)的3個訓(xùn)練參數(shù)最優(yōu)值.具體算法步驟為6~10.
(7)
步驟7.訓(xùn)練以及更新網(wǎng)絡(luò)中隱含層到輸出層節(jié)點(diǎn)之間的權(quán)值,這一步實(shí)際是在求解線性映射函數(shù),從而得到權(quán)值系數(shù)
其中P為隱含層節(jié)點(diǎn)數(shù).
步驟8.訓(xùn)練以及更新網(wǎng)絡(luò)中隱含層高斯函數(shù)的數(shù)據(jù)中心值
步驟9.訓(xùn)練以及更新網(wǎng)絡(luò)中隱含層高斯函數(shù)的數(shù)據(jù)寬度
步驟10.徑向基神經(jīng)網(wǎng)絡(luò)作為一種常用的多層前饋神經(jīng)網(wǎng)絡(luò),每輪訓(xùn)練結(jié)束后會得到神經(jīng)元的誤差信號,利用誤差反向調(diào)整數(shù)據(jù)中心cj、數(shù)據(jù)寬度δj以及權(quán)值wj,經(jīng)過多次迭代后,判斷總輸出誤差是否達(dá)到預(yù)期精度要求.若滿足要求,訓(xùn)練所得到的神經(jīng)網(wǎng)絡(luò)參數(shù)即為最優(yōu)值.
病毒性肝炎數(shù)據(jù)集(Hepatitis dataset)來源于UCI數(shù)據(jù)庫.診斷數(shù)據(jù)給出19個特征指標(biāo),構(gòu)成條件屬性C,決策屬性D為2分類,No和Yes,該數(shù)據(jù)集總共155個實(shí)例.病毒性肝炎原始數(shù)據(jù)信息表中的缺失率采用四舍五入方式,精確到小數(shù)點(diǎn)數(shù)字后兩位.由于經(jīng)典粗糙集只能處理離散型數(shù)據(jù),原始信息表中部分指標(biāo)為No或者Yes(數(shù)據(jù)表中直接給出簡寫N和Y)用0,1數(shù)值替換,而病毒性肝炎原始數(shù)據(jù)中同樣給出連續(xù)型數(shù)值特征指標(biāo),通過聚類算法完成對象歸簇,即離散化方式采用聚類方法.
表1 病毒性肝炎原始數(shù)據(jù)信息表
病毒性肝炎原始特征信息表對部分條件屬性值為No或者Yes的條件屬性,通過篩選替換方式可直接完成離散化.年齡取值為7~78,需要進(jìn)行可視化封裝,即重新編碼成不同變量,輸入第一個分割點(diǎn)位置7,寬度23.667,分成3個區(qū)間(圖3).
圖3 年齡區(qū)間分析圖
對于處理醫(yī)療數(shù)據(jù)中的缺失值問題,給出5種解決方案:① 簡單刪除法.對于缺失值太多的實(shí)例,為了避免含有太多噪聲,直接刪除.② 單值插補(bǔ).即對屬性非缺失值求取中位數(shù)、均值或者眾
數(shù),用于填充缺失值.③ 極大似然估計.在該計算方法中,最常采用的是E-M算法[16].它的使用條件是在數(shù)量足夠多的大樣本中,針對依賴于其它完全變量的隨機(jī)缺失數(shù)據(jù).④ 多重補(bǔ)插法[17].算法基于整個數(shù)據(jù)集,待插補(bǔ)的特征值具有隨機(jī)性,缺失數(shù)據(jù)采用蒙特卡洛方法填充.⑤ 線性插值法[18]. 通過插值函數(shù)近似代替原函數(shù),得到待填充數(shù)值.
給出多種方案后,考慮到簡單刪除法和單值插補(bǔ)都會造成原始數(shù)據(jù)信息浪費(fèi),會造成樣本信息丟失更多,因此,文中針對條件屬性c中的缺失值選用分段線性插值方法填充,插值函數(shù)為一次多項式,近似代替原函數(shù)[18].與此同時,對其它連續(xù)型數(shù)值的特征指標(biāo),選用基于距離的K-Means聚類算法,設(shè)置聚類數(shù)為3,迭代次數(shù)為100,對距離近的兩兩對象重新分配,完成類簇.K-Means算法對連續(xù)性數(shù)值聚類,初始、最終聚類中心變化如表所示.
表2 初始、最終聚類中心
通過特征選擇剔除條件屬性中不必要的特征指標(biāo),在保證最小約簡集合同原始數(shù)據(jù)具有相同的決策能力.我們在進(jìn)行知識約簡時,就需要考慮約簡集合RED每刪掉一個條件屬性,是否具有與原集合相同的劃分能力,即保證:POSREDmin(D)=POSc(D),這里REDmin為最小屬性約簡集合,表明最小約簡集合在處理完不確定問題時,具有同樣的決策能力.對缺失值采用線性插值的方式,K-Means算法對連續(xù)性數(shù)值聚類,聚類算法設(shè)置迭代次數(shù)為100,聚類數(shù)為3,數(shù)據(jù)預(yù)處理完成后得到離散化后的決策如表3所示.
表3 離散化后的決策表
文中選擇的病毒性肝炎醫(yī)療數(shù)據(jù)決策屬于2分類問題,通過觀察混淆矩陣中4個指標(biāo)得出初步判斷,為了進(jìn)一步衡量算法模型是否可行,引入準(zhǔn)確率acc作為評價指標(biāo).表4中,行為真實(shí)值,列為預(yù)測值.
表4 混淆矩陣
對于整個數(shù)據(jù)模型,使用準(zhǔn)確率acc計算模型中判斷正確的樣本占所有結(jié)果值的比重,通過公式可知,分子中的真陽性(TP)和真陰性(TN)比重越大,比例值代表準(zhǔn)確率越高[19].
其中,TP為真陽性,即病人正確確診的個數(shù);TN為真陰性,即健康人診斷無病,被正確地診斷所得的樣本個數(shù);FP為假陽性,即健康人被錯誤地診斷而得樣本個數(shù);FN為假陰性,即患者被錯誤地診斷,所得樣本個數(shù).
由于廣義RBF神經(jīng)網(wǎng)絡(luò)要求m
表5 newrb函數(shù)參數(shù)值試驗(yàn)結(jié)果
圖4和圖5分別給出了病毒性肝炎原始數(shù)據(jù)和屬性約簡所得集合分別在同一RBF神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練圖,縱坐標(biāo)設(shè)置30%比例的測試集合的均方誤差值.由圖5可知,對原始數(shù)據(jù)所抽選樣本的訓(xùn)練得最佳均方誤差值為1.68307×10-8,基于條件信息熵的屬性約簡算法訓(xùn)練所得均方誤差值為3.14357×10-2.而該數(shù)值在網(wǎng)絡(luò)函數(shù)性能中的表現(xiàn)反映了在擬合試驗(yàn)中真實(shí)值與預(yù)測值之間的差異.
圖4 原始數(shù)據(jù)的RBF神經(jīng)網(wǎng)絡(luò)訓(xùn)練圖
圖5 屬性約簡集合的RBF神經(jīng)網(wǎng)絡(luò)訓(xùn)練圖
受試者工作特征曲線簡稱ROC曲線[20].曲線以真陽性率(敏感度TP_rate=TP/(TP+FN))為縱軸,假陽性率(特異性FT_rate=FP/(FP+TN))為橫軸,對角線叫做純機(jī)遇線,ROC曲線在對角線上方且距離越遠(yuǎn),表明應(yīng)用該模型效果越好.圖6和圖7分別表示約簡后的樣本應(yīng)用到RS+RBF模型后訓(xùn)練集和測試集的ROC曲線圖.
圖6 RS+RBF訓(xùn)練集ROC曲線圖
圖7 RS+RBF測試集ROC曲線圖
訓(xùn)練集合中最佳靈敏度和特異性坐標(biāo)點(diǎn)為(0.19,0.79),AUC值為0.87.測試集合中最佳靈敏度和特異性坐標(biāo)點(diǎn)為(0.21,0.95),AUC值為0.90,滿足0.5<0.90<1條件,證明該組合模型具有預(yù)測價值.
選取30%的樣本數(shù)據(jù)對具有相同網(wǎng)絡(luò)結(jié)構(gòu)的徑向基神經(jīng)網(wǎng)絡(luò)與組合模型進(jìn)行測試,對樣本分類效果如圖8和圖9所示.可以明顯看出約簡后的數(shù)據(jù)在挑選出最小約簡集合后,分類準(zhǔn)確率和運(yùn)行時間評價指標(biāo)都有很好的優(yōu)勢.
圖8 約簡前RBF神經(jīng)網(wǎng)絡(luò)樣本分類效果圖
圖9 約簡后RS+RBF神經(jīng)網(wǎng)絡(luò)樣本分類效果圖
1)分類器對比結(jié)果.處理醫(yī)療數(shù)據(jù)并進(jìn)行醫(yī)療決策,由于醫(yī)療數(shù)據(jù)包含缺失值、不確定性、不精確數(shù)據(jù).運(yùn)用基于條件信息熵的屬性約簡算法,將初始決策表中19個條件屬性約簡至7個,降低數(shù)據(jù)集維度,與有著優(yōu)越的泛化能力,卻無法對高維度、冗余數(shù)據(jù)有效處理的神經(jīng)網(wǎng)絡(luò)模型有效結(jié)合.RBF神經(jīng)網(wǎng)絡(luò)對原始數(shù)據(jù)訓(xùn)練所得分類準(zhǔn)確率為82.37%,運(yùn)行時間為4.46 s,而使用組合算法所得分類準(zhǔn)確率提升至92.17%,運(yùn)行時間縮減至2.16 s,表6給出約簡前后比較結(jié)果.
表6 約簡樣本前后效果對比
2)文中與歷史算法對比.通過調(diào)查近些年來使用UCI數(shù)據(jù)庫中的病毒性肝病數(shù)據(jù)集不同算法的應(yīng)用情況,對算法和分類準(zhǔn)確率進(jìn)行比較,如表7所示.
表7 相同數(shù)據(jù)集不同算法應(yīng)用結(jié)果對比
粗糙集和徑向基神經(jīng)網(wǎng)絡(luò)的組合方法應(yīng)用于病毒性肝炎決策分析,用線性插值法填充數(shù)據(jù)缺失值,K-Means算法對原始知識決策表中連續(xù)性數(shù)據(jù)完成聚類,離散化處理后的數(shù)據(jù)進(jìn)行屬性約簡,找到最小約簡集.由于屬性約簡的前提是保持擁有與原始知識庫相同的分類能力,冗余屬性的剔除使得神經(jīng)網(wǎng)絡(luò)輸入節(jié)點(diǎn)減少,簡化了神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu).試驗(yàn)證明,組合模型的應(yīng)用使得準(zhǔn)確率由82.37%提升至92.17%,運(yùn)行時間由4.46 s縮短至2.16 s,并且訓(xùn)練集、測試集組合模型中AUC值分別為0.87,0.90,可以判斷該分類器模型效果較好.該方法可以很好地協(xié)助醫(yī)護(hù)人員開展救治工作.