詹秀菊,劉秀峰
(廣州中醫(yī)藥大學(xué)醫(yī)學(xué)信息工程學(xué)院,廣州510006)
455 例醫(yī)案文獻(xiàn)中的癥狀變量有皮疹發(fā)展迅速、皮疹經(jīng)久不退、皮疹消退、皮損鮮紅(紅)、皮損淡紅、皮損暗紅、點(diǎn)滴狀皮疹、斑片狀皮疹、地圖狀皮疹、鱗屑干燥脫落、鱗屑附著緊、皮損肥厚、浸潤(rùn)明顯、皮膚干燥、皮膚潮濕、皮損灼熱、皮損腫脹、疲乏、咽干、咽燥、咽腫、咽喉痛、肢體倦怠、頭暈、胸悶、納呆、喜冷飲、口干、口渴、口苦、失眠多夢(mèng)、不寐、心煩易怒、便干、便秘、便溏、小便黃赤、唇青紫、舌紅、舌紫暗、舌暗紅、舌淡紅、瘀斑、苔黃、苔白、苔薄、少苔、舌燥、苔膩、浮脈、沉脈、緩脈、數(shù)脈、澀脈、滑脈、弦脈、細(xì)脈和濡脈等58 個(gè),本研究選取PCA 對(duì)58 癥狀變量進(jìn)行降維,將降維后的34個(gè)主成分因子作為模型的輸入變量,血瘀型、血熱型和血燥型三個(gè)證型設(shè)置為一列,作為輸出變量,其中用數(shù)字1 代表血燥型,2 代表血瘀型,3 代表血熱型。本文利用隨機(jī)抽樣法對(duì)455 例病案抽取測(cè)試樣本和訓(xùn)練樣本。樣本隨機(jī)抽樣法用均勻分布的隨機(jī)數(shù)構(gòu)造,利用MATLAB 2015a 中rand(1:455)函數(shù)產(chǎn)生455 個(gè)小于1的隨機(jī)數(shù)k,再用sort(k)函數(shù)對(duì)隨機(jī)數(shù)產(chǎn)生455 個(gè)隨機(jī)序號(hào),設(shè)定訓(xùn)練樣本數(shù)為357,測(cè)試樣本數(shù)為88,根據(jù)設(shè)定樣本數(shù)和隨機(jī)序號(hào)可隨機(jī)選取357 例訓(xùn)練樣本,同理可隨機(jī)選取88 例測(cè)試樣本。具體代碼實(shí)現(xiàn)為:
BP 神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)設(shè)定是BP 神經(jīng)網(wǎng)絡(luò)構(gòu)建模型的第一步。本研究采用三層拓?fù)浣Y(jié)構(gòu),即輸入層、隱含層和輸出層,輸入變量為34 個(gè)主成分因子,因輸入層節(jié)點(diǎn)數(shù)等于輸入變量數(shù),即輸入層節(jié)點(diǎn)數(shù)為34 個(gè)。同理,三個(gè)證型在同一列作為輸出變量,即輸出層節(jié)點(diǎn)數(shù)為1 個(gè)。隱含層節(jié)點(diǎn)數(shù)的多少對(duì)BP 神經(jīng)網(wǎng)絡(luò)模型的性能具有一定的影響,增加隱含層節(jié)點(diǎn)數(shù)可以有效改善模型的性能,但同時(shí)也增加網(wǎng)絡(luò)復(fù)雜化,增加網(wǎng)絡(luò)訓(xùn)練時(shí)間。本研究根據(jù)公式n1= n+m +a 來(lái)計(jì)算隱含層,其中m 為輸出層節(jié)點(diǎn)數(shù),n 為輸入層節(jié)點(diǎn)數(shù),n1為隱含層節(jié)點(diǎn)數(shù),a 是0~10 之間的常數(shù),在本研究中輸入變量有34 個(gè),所以m 為34,輸出變量為1 個(gè),n 為1,經(jīng)公式計(jì)算可得隱含層節(jié)點(diǎn)數(shù)的參考范圍為6~16,隱含層節(jié)點(diǎn)數(shù)較多時(shí),將增加神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性,因此本研究先選取6、7、8、9、10、11 作為隱含層節(jié)點(diǎn)數(shù)的試驗(yàn)點(diǎn),以BP 神經(jīng)網(wǎng)絡(luò)測(cè)試準(zhǔn)確率D 作為評(píng)價(jià)標(biāo)準(zhǔn)選取最適合的隱含層節(jié)點(diǎn)數(shù)。準(zhǔn)確率D 的定義公式為D=s/total。其中s 為實(shí)際輸出與期望輸出相等的個(gè)數(shù),total 為實(shí)際數(shù)據(jù)的個(gè)數(shù)。
本研究通過(guò)BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到的準(zhǔn)確率,對(duì)比選用不同隱含層節(jié)點(diǎn)數(shù)時(shí)實(shí)驗(yàn)結(jié)果的準(zhǔn)確率。從圖1中可以看出當(dāng)隱含層節(jié)點(diǎn)數(shù)為7 或8 時(shí),實(shí)驗(yàn)結(jié)果準(zhǔn)確率的最大值和最小值相差較大,相對(duì)不穩(wěn)定,因此可把隱含層節(jié)點(diǎn)數(shù)為7 和8 的情況排除。當(dāng)隱含層節(jié)點(diǎn)數(shù)為10 時(shí),在10 次仿真結(jié)果中大部分準(zhǔn)確率相對(duì)較低,因此可將隱含層節(jié)點(diǎn)為10 的情況去除。隱含層節(jié)點(diǎn)數(shù)為6、9 和11 在10 次仿真中結(jié)果相對(duì)穩(wěn)重,其中隱含層節(jié)點(diǎn)數(shù)為6,10 次的平均準(zhǔn)確率最高,其狀態(tài)最優(yōu),因此隱含層節(jié)點(diǎn)數(shù)設(shè)置為6,即BP 神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)為34-6-1。
圖1 不同隱含層節(jié)點(diǎn)數(shù)的準(zhǔn)確率比較
BP 神經(jīng)網(wǎng)絡(luò)的各參數(shù)影響B(tài)P 神經(jīng)網(wǎng)絡(luò)性能,因此確定各參數(shù)是構(gòu)建BP 神經(jīng)模型的第二步。本研究中BP 神經(jīng)網(wǎng)絡(luò)模型采用MATLAB 2015a 中Levenberg-Marquardt 算法對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練函數(shù)設(shè)置為trainlm(),訓(xùn)練次數(shù)為100,訓(xùn)練目標(biāo)為0.001,學(xué)習(xí)速率為0.1,隱含層神經(jīng)元與輸出層的傳遞函數(shù)采用S 性正切函數(shù)tansig(),實(shí)現(xiàn)核心代碼如下:
BP 神經(jīng)網(wǎng)絡(luò)由上面可確定參數(shù)以及網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),確定BP 神經(jīng)網(wǎng)絡(luò)模型,經(jīng)MATLAB 2015a 仿真3次,三次仿真準(zhǔn)確率分別為85.23%、80.68%和82.95%。以第一次仿真結(jié)果為例進(jìn)行說(shuō)明,如表1所示。
表1 BP 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果
其中BP 神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練結(jié)果設(shè)置規(guī)則為:當(dāng)訓(xùn)練輸出結(jié)果的數(shù)值位于區(qū)間(0.5,1.5]中設(shè)置判斷輸出結(jié)果為1;位于區(qū)間(1.5,2.5]設(shè)置判斷結(jié)果為2;位于區(qū)間(2.5,3.5]設(shè)置判斷結(jié)果為3。表1 中BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果為1.02,模型判定期望輸出為1,即輸出的證型為血燥證。實(shí)際輸出與預(yù)測(cè)輸出結(jié)果相等時(shí),BP 神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)判斷為真,否則為假,同樣以BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練輸出結(jié)果為1.02 舉例,預(yù)測(cè)輸出判定為1,實(shí)際輸出為1,即可判定模型預(yù)測(cè)結(jié)果為真,該測(cè)試樣本的整體準(zhǔn)確率為85.23%。
中醫(yī)證型是一個(gè)復(fù)雜的非線性系統(tǒng),BP 神經(jīng)網(wǎng)絡(luò)具有非線性映射能力,能較好模擬任意一個(gè)函數(shù),因此BP 神經(jīng)網(wǎng)絡(luò)能將癥狀與證型之間的關(guān)系通過(guò)其本身特點(diǎn)映射出來(lái)。本研究BP 神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)為34-6-1 構(gòu)建模型,經(jīng)MATLAB 2015a 仿真后,得到BP 神經(jīng)網(wǎng)絡(luò)的3 次平均預(yù)測(cè)準(zhǔn)確率82.95%,此結(jié)果表明BP神經(jīng)網(wǎng)絡(luò)建模應(yīng)用于銀屑病中醫(yī)證型方面的研究是可行的,值得進(jìn)一步深入研究。