張怡君 左穎婷 劉近春 姜麗君 李 金 張巖波 郭東星△
【提 要】 目的 將BP神經(jīng)網(wǎng)絡(luò)和GA-BP神經(jīng)網(wǎng)絡(luò)模型引入到肝硬化病例資料中,對(duì)肝硬化分期診斷的分類進(jìn)行預(yù)測(cè)分析,比較兩種分類方法的預(yù)測(cè)性能。方法 根據(jù)肝硬化患者病例資料,進(jìn)行BP神經(jīng)網(wǎng)絡(luò)和GA-BP神經(jīng)網(wǎng)絡(luò)模型的建模和預(yù)測(cè)。結(jié)果 BP神經(jīng)網(wǎng)絡(luò)的ACC為67.50%,GA-BP神經(jīng)網(wǎng)絡(luò)的ACC為92.50%,GA-BP神經(jīng)網(wǎng)絡(luò)的TPR、TNR、PV+、PV-、AUC四個(gè)指標(biāo)均高于BP神經(jīng)網(wǎng)絡(luò),且建模時(shí)間大大縮短。結(jié)論 GA-BP神經(jīng)網(wǎng)絡(luò)可以提高分類預(yù)測(cè)效果,具有對(duì)肝硬化分期分類預(yù)測(cè)的可行性。
人工神經(jīng)網(wǎng)絡(luò)(artificial neural network)是一種類似人類神經(jīng)系統(tǒng)的信息處理技術(shù),模仿生物神經(jīng)網(wǎng)絡(luò)用于處理數(shù)據(jù)的數(shù)學(xué)模型[1-3]。BP(back propagation)神經(jīng)網(wǎng)絡(luò)是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一[4]。BP神經(jīng)網(wǎng)絡(luò)模型對(duì)自變量類型的要求不高,可以是連續(xù)的,也可以是離散的,對(duì)自變量是否滿足正態(tài)性及相互獨(dú)立等條件不需要考慮,對(duì)變量間復(fù)雜的非線性關(guān)系有較好的識(shí)別能力[5]。但存在收斂時(shí)間過長、穩(wěn)健性差、易陷入局部極小值等不足[6]。
遺傳算法(genetic algorithm,GA) 起源于對(duì)生物系統(tǒng)進(jìn)行的計(jì)算機(jī)模擬研究,是一種基于生物遺傳和進(jìn)化機(jī)制的適合于復(fù)雜系統(tǒng)優(yōu)化的自適應(yīng)概率優(yōu)化技術(shù)。遺傳算法具有優(yōu)化模型參數(shù)或結(jié)構(gòu)、采用全局搜索、強(qiáng)大的可擴(kuò)展性和包容性等優(yōu)點(diǎn),可以同許多技術(shù)聯(lián)合使用。
將遺傳算法與神經(jīng)網(wǎng)絡(luò)相結(jié)合,可以避免神經(jīng)網(wǎng)絡(luò)易陷入局部極小、易出現(xiàn)過擬合現(xiàn)象、泛化能力差等問題。遺傳算法不僅能發(fā)揮神經(jīng)網(wǎng)絡(luò)的泛化的映射能力,而且能使神經(jīng)網(wǎng)絡(luò)具有很快的收斂性和較強(qiáng)的學(xué)習(xí)能力[7]。GA-BP神經(jīng)網(wǎng)絡(luò)模型是近年來常用的預(yù)測(cè)模型,集中了遺傳算法以及神經(jīng)網(wǎng)絡(luò)模型的優(yōu)點(diǎn),較單一神經(jīng)網(wǎng)絡(luò)模型的預(yù)測(cè)結(jié)果更佳。
本研究采用回顧性流行病學(xué)調(diào)查方法,調(diào)查對(duì)象為2006年1月到2015年12月間山西醫(yī)科大學(xué)第一附屬醫(yī)院消化內(nèi)科的肝硬化患者。通過對(duì)患者病歷的查閱,篩選出符合標(biāo)準(zhǔn)的病歷。入選標(biāo)準(zhǔn):病歷資料完整,有詳細(xì)的基本信息、臨床表現(xiàn)和實(shí)驗(yàn)室檢查記錄,必須有計(jì)算Child分級(jí)[8]的指標(biāo):是否腹水、白蛋白含量、總膽紅素含量、是否并發(fā)肝性腦病和凝血酶原時(shí)間(區(qū)分肝硬化代償期或失代償期)。
調(diào)查開始前,對(duì)調(diào)查人員進(jìn)行統(tǒng)一培訓(xùn),學(xué)習(xí)了解病歷資料的結(jié)構(gòu)和內(nèi)容。數(shù)據(jù)錄入時(shí)采用雙重錄入的方式,確保錄入數(shù)據(jù)的準(zhǔn)確性。
(1)神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)模型主要包括前饋神經(jīng)網(wǎng)絡(luò)和反饋神經(jīng)網(wǎng)絡(luò)兩類。前饋神經(jīng)網(wǎng)絡(luò),是指數(shù)據(jù)從輸入層通過隱含層到達(dá)輸出層,信號(hào)只向前傳播,如圖1所示。反饋神經(jīng)網(wǎng)絡(luò),則是數(shù)據(jù)是從輸入層通過隱含層到達(dá)輸出層,輸出值又反向傳播回輸入層,直到網(wǎng)絡(luò)穩(wěn)定,如圖2所示。
圖1 前饋神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
圖2 反饋神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
①BP神經(jīng)網(wǎng)絡(luò)
BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),采用最速下降法的學(xué)習(xí)規(guī)則,其主要特點(diǎn)是信號(hào)前向傳遞,誤差反向傳播。在前向傳遞中,輸入信號(hào)從輸入層經(jīng)隱含層逐層處理,直至輸出層,每一層的神經(jīng)元狀態(tài)只影響下一層神經(jīng)元狀態(tài)。如果輸出層得不到期望輸出,則轉(zhuǎn)入反向傳播,根據(jù)預(yù)測(cè)誤差調(diào)整網(wǎng)絡(luò)權(quán)值和閾值,從而使BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)輸出不斷逼近期望輸出。
②BP神經(jīng)網(wǎng)絡(luò)的構(gòu)建
BP神經(jīng)網(wǎng)絡(luò)為三層神經(jīng)網(wǎng)絡(luò),輸入層、隱含層、輸出層。隱含層可以為一個(gè)也可以為多個(gè),已有許多研究證明一個(gè)隱含層就可以滿足對(duì)輸入數(shù)據(jù)的非線性映射。
輸入層節(jié)點(diǎn)數(shù)取決于自變量的個(gè)數(shù)。
隱含層節(jié)點(diǎn)數(shù)過多過少都會(huì)對(duì)網(wǎng)絡(luò)的預(yù)測(cè)效果產(chǎn)生很大的影響,但目前對(duì)于網(wǎng)絡(luò)的隱含層節(jié)點(diǎn)數(shù)沒有一個(gè)確定的公式,只能通過經(jīng)驗(yàn)公式做為初步估計(jì),然后采用試湊法確定隱含層的節(jié)點(diǎn)數(shù)。公式如下:
H≤n-1;
H=log2n
其中,H是隱含層節(jié)點(diǎn)數(shù)目,n是輸入層節(jié)點(diǎn)數(shù)目,m是輸出層節(jié)點(diǎn)數(shù)目,a是[1,10]之間的數(shù)目。
輸出層節(jié)點(diǎn)數(shù)一般通過實(shí)際問題得出,如分類預(yù)測(cè)時(shí),分類為n個(gè)類別,則輸出層節(jié)點(diǎn)數(shù)就為n個(gè)神經(jīng)元。
(2)遺傳算法
遺傳算法模擬自然界遺傳機(jī)制和生物進(jìn)化論而成的一種并行隨機(jī)搜索最優(yōu)方法,按照選擇的適應(yīng)度函數(shù)并通過遺傳中的選擇、交叉和變異對(duì)個(gè)體進(jìn)行篩選,使適應(yīng)度好的個(gè)體被保留,適應(yīng)度差的個(gè)體被淘汰,新的群體既繼承了上一代的信息,又優(yōu)于上一代。這樣反復(fù)循環(huán),直至滿足條件。
遺傳算法的基本操作:①選擇,從群體中選出優(yōu)良的個(gè)體,使他們有機(jī)會(huì)作為父代為下一代繁衍子孫;②交叉,將群體中的各個(gè)個(gè)體隨機(jī)搭配成對(duì),對(duì)每一個(gè)個(gè)體,以交叉概率交換它們之間的部分染色體;③變異,對(duì)種群的每一個(gè)個(gè)體,以變異概率改變某一個(gè)或多個(gè)基因座上的基因值為其他的等位基因。
遺傳算法的基本計(jì)算流程如圖3所示。
(3)GA-BP神經(jīng)網(wǎng)絡(luò)
GA-BP神經(jīng)網(wǎng)絡(luò)包括確定BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)、遺傳算法優(yōu)化和BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)三部分。根據(jù)輸入輸出參數(shù)個(gè)數(shù)確定BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),進(jìn)而確定遺傳算法個(gè)體的長度。遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值時(shí),種群中的每個(gè)個(gè)體都包含了一個(gè)網(wǎng)絡(luò)的權(quán)值和閾值,個(gè)體通過適應(yīng)度函數(shù)計(jì)算個(gè)體適應(yīng)度值,并通過選擇、交叉和變異操作找到最優(yōu)適應(yīng)度對(duì)應(yīng)的個(gè)體。BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)用最優(yōu)個(gè)體對(duì)網(wǎng)絡(luò)初始權(quán)值和閾值賦值,網(wǎng)絡(luò)訓(xùn)練后輸出分類預(yù)測(cè)結(jié)果。GA-BP神經(jīng)網(wǎng)絡(luò)算法流程如圖4所示。
圖3 遺傳算法基本計(jì)算流程圖
圖4 GA-BP神經(jīng)網(wǎng)絡(luò)算法流程圖
為了比較遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)前后的預(yù)測(cè)效果,先將全部自變量輸入,建立BP神經(jīng)網(wǎng)絡(luò)模型;再將遺傳優(yōu)化提取的自變量作為輸入,利用遺傳算法對(duì)BP神經(jīng)網(wǎng)絡(luò)優(yōu)化后重新建立模型進(jìn)行測(cè)試。利用相同的測(cè)試集和訓(xùn)練集,對(duì)比分析預(yù)測(cè)效果。隨機(jī)選取訓(xùn)練集和測(cè)試集,其比例為9:1,重復(fù)選擇100次。
(4)分類預(yù)測(cè)的評(píng)價(jià)
常用的分類預(yù)測(cè)評(píng)價(jià)指標(biāo)有準(zhǔn)確率(accuracy,ACC)、真陽性率(true positive rate,TPR)、真陰性率(true negative rate,TNR)、陽性預(yù)測(cè)值(positive predictIve value,PV+)、陰性預(yù)測(cè)值(negative predictIve value,PV-)、ROC曲線下面積(the area under the curves,AUC)等。
從1099份原始記錄中選出符合標(biāo)準(zhǔn)的422份病例作為本研究的調(diào)查對(duì)象,具體篩選過程如圖5所示。
圖5 樣本篩選流程圖
通過Child-Pugh分級(jí)[9]計(jì)算,其中82例代償期患者,340例失代償期患者。
(1)人口學(xué)特征分析
調(diào)查對(duì)象中男性223例,占52.8%,女性199例,占47.2%;調(diào)查對(duì)象的平均年齡(56.63±13.624)歲,最大年齡107歲,最小年齡17歲。
(2)綜合因素描述
初步進(jìn)行單因素χ2分析,將并發(fā)癥、臨床表現(xiàn)和既往史中P值在0.05附近的變量分別納入到綜合變量中,綜合變量的取值為單個(gè)變量取值之和。見表1。
表1 綜合變量描述
(3)實(shí)驗(yàn)室檢查描述
實(shí)驗(yàn)室檢查的統(tǒng)計(jì)描述見表2。
表2 實(shí)驗(yàn)室檢查描述
(1)隱含層節(jié)點(diǎn)數(shù)
BP神經(jīng)網(wǎng)絡(luò)的隱含層節(jié)點(diǎn)數(shù)對(duì)于BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)效果有很大的影響:隱含層節(jié)點(diǎn)數(shù)過少,網(wǎng)絡(luò)不能充分學(xué)習(xí),網(wǎng)絡(luò)的預(yù)測(cè)誤差會(huì)加大;隱含層節(jié)點(diǎn)數(shù)太多,會(huì)使網(wǎng)絡(luò)的訓(xùn)練時(shí)間延長,容易發(fā)生過擬合。所以本研究首先應(yīng)該確定合適的隱含層節(jié)點(diǎn)數(shù),采用的是試湊法,分別將BP神經(jīng)網(wǎng)絡(luò)和GA-BP神經(jīng)網(wǎng)絡(luò)在隱含層節(jié)點(diǎn)數(shù)[20,60]中取點(diǎn),重復(fù)50次,分別記錄BP神經(jīng)網(wǎng)絡(luò)的誤差率和GA-BP神經(jīng)網(wǎng)絡(luò)的誤差率,比較50次預(yù)測(cè)結(jié)果中位數(shù),如圖6所示。故本研究的隱含層節(jié)點(diǎn)數(shù)定為35。
圖6 隱含層節(jié)點(diǎn)數(shù)的確定
(2)BP、GA-BP神經(jīng)網(wǎng)絡(luò)模型結(jié)果
根據(jù)肝硬化數(shù)據(jù)輸入輸出特點(diǎn)確定BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),輸入變量38個(gè),輸出變量1個(gè),所以BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)為38-35-1。BP神經(jīng)網(wǎng)絡(luò)參數(shù)配置:學(xué)習(xí)率為0.1,訓(xùn)練目標(biāo)最小誤差0.1。
GA-BP神經(jīng)網(wǎng)絡(luò)參數(shù)配置:染色體長度為38,種群大小設(shè)置為30。
隨機(jī)選取測(cè)試集和訓(xùn)練集,重復(fù)選擇100次,記錄兩個(gè)模型每次測(cè)試集的ACC、TPR、TNR、PV+、PV-、AUC,用中位數(shù)描述集中趨勢(shì),上、下四分位數(shù)(QL~QU)描述離散趨勢(shì),具體見表4。
表4 模型預(yù)測(cè)效果
從分類預(yù)測(cè)評(píng)價(jià)指標(biāo)可以看出,GA-BP神經(jīng)網(wǎng)絡(luò)的分類效果較BP神經(jīng)網(wǎng)絡(luò)更優(yōu)。
肝硬化是肝臟疾病中常見的病變,肝硬化發(fā)展到失代償期就到了比較嚴(yán)重的階段,出現(xiàn)多種并發(fā)癥,預(yù)后差,而且肝硬化發(fā)展到失代償期病情不可逆,所以將病情控制在肝硬化失代償期前對(duì)肝硬化的治療、預(yù)后都有很重要的意義。本研究嘗試通過統(tǒng)計(jì)方法,對(duì)肝硬化代償期和失代償期進(jìn)行預(yù)測(cè)分類。
GA-BP神經(jīng)網(wǎng)絡(luò)利用了遺傳算法的全局搜索且不易陷入局部極小值的優(yōu)勢(shì),不僅對(duì)自變量進(jìn)行優(yōu)化,還對(duì)BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值進(jìn)行優(yōu)化,計(jì)算全局最優(yōu),彌補(bǔ)了BP神經(jīng)網(wǎng)絡(luò)易陷入局部極小、易出現(xiàn)過擬合現(xiàn)象、泛化能力差等缺陷。比較遺傳算法優(yōu)化前后的預(yù)測(cè)效果,結(jié)果顯示優(yōu)化后預(yù)測(cè)性能得到了改善和提升,且建模時(shí)間大大縮短,說明GA-BP神經(jīng)網(wǎng)絡(luò)模型的分類預(yù)測(cè)效果優(yōu)于BP神經(jīng)網(wǎng)絡(luò)。
本文只研究了肝硬化分期,范圍太小,研究的問題過于局限。由于肝硬化失代償期和代償期的分期診斷不是很明確,本文采用Child分級(jí)的方法,可能對(duì)預(yù)測(cè)結(jié)果有一定的影響。同時(shí)符合納入標(biāo)準(zhǔn)的病例較少,抽樣誤差可能較大。對(duì)此,本研究擬繼續(xù)收集病例,以增加研究樣本量,下一步計(jì)劃將肝硬化前期、肝硬化、肝癌做為分類結(jié)局,對(duì)其進(jìn)行分類預(yù)測(cè)分析。