顧天宇,嚴壯志,蔣皆恢
(上海大學通信與信息工程學院,上海 200444)
辨證論治指導中醫(yī)臨床診療,是中醫(yī)理論的核心和精髓[1]。中風病作為常見的腦血管病,針對其辨證論治最早可以追溯到《黃帝內經(jīng)》時期。在臨床上對中風患者進行辨證論治,可以得到良好的預后效果。氣虛血瘀證是中風常見的證型之一,占缺血性中風70%以上[2],因此針對氣虛血瘀證進行證候分類具有臨床意義。
目前,關于運用現(xiàn)代科學技術的理論和方法推進中醫(yī)證候分類的數(shù)字化、自動化與智能化研究較多。如陳建新等[3]利用貝葉斯方法、神經(jīng)網(wǎng)絡方法、支持向量機方法和決策樹方法建立基于冠心病患者中醫(yī)四診信息的證候分類模型;覃裕旺等[4]、許明東等[5]利用BP神經(jīng)網(wǎng)絡方法、支持向量機方法建立高血壓病中醫(yī)證候分類模型,但是關于中風病中醫(yī)證候分類模型的研究鮮有報道。本研究基于文獻資料,應用支持向量機(Support Vector Machine,SVM)、反向傳播(Back Propagating,BP)神經(jīng)網(wǎng)絡與梯度提升決策樹(Gradient Boosting Decision Tree,GBDT)建立中風病中醫(yī)證候分類模型,以年齡、性別、身高、體質量與臨床中風病常見的癥狀,包括中風主要癥狀、舌象、脈象數(shù)據(jù)作為輸入,氣虛血瘀證的判斷作為輸出。
選擇2020年3月—2021年4月在黑龍江中醫(yī)藥大學附屬醫(yī)院治療的中風病患者共669例,一般資料信息見表1。其中辨證為氣虛血瘀證382 例,非氣虛血瘀證287例。
表1 669例中風病患者一般資料比較(±s)
表1 669例中風病患者一般資料比較(±s)
辨證類型氣虛血瘀非氣虛血瘀例數(shù)382 287性別(m/f)237/145 131/156年齡(歲)60.80±10.68 61.59±9.24身高(cm)168.64±8.26 166.76±7.53體質量(kg)65.78±10.62 62.26±11.18
中風病中醫(yī)診斷標準參照中華中醫(yī)藥學會發(fā)布的《中醫(yī)內科常見病診療指南中醫(yī)病證部分》[6]與國家中醫(yī)藥管理局發(fā)布的《中醫(yī)病證診斷療效標準》[7]。
中風中醫(yī)臨床診斷信息所用的癥狀、證候名稱參考《中醫(yī)臨床診療術語證候部分》[8]與北京中醫(yī)藥大學總結的中風證候要素診斷量表[9]。觀察半身不遂、口舌歪斜、面部麻木等39 個癥狀,舌象分為舌紅、舌淡白、舌絳等32 個癥狀;脈象分為脈弦、脈數(shù)、脈澀等23 個癥狀。每個癥狀分為無、有兩種情況,分別用0、1表示。具體見表2。
表2 中風病中醫(yī)臨床診斷癥狀
①經(jīng)頭顱CT或MRI診斷為中風的住院患者;②未用藥或未長期使用藥物而干擾證型判斷患者;③由兩名或兩名以上臨床醫(yī)師進行辨證論治。
①不符合上述納入標準;②已受到系統(tǒng)用藥干擾患者;③缺少臨床醫(yī)生證型判斷記錄患者。
研究數(shù)據(jù)共669例,按照8∶2隨機劃分為訓練集和測試集,其中訓練集535例,測試集134例,訓練集輸入中風病中醫(yī)證候分類模型中進行五折交叉驗證訓練模型,測試集用于評估模型的性能,評估指標包括準確率、敏感度、特異度以及AUC。
研究采用操作系統(tǒng)為Linux Ubuntu 16.04系統(tǒng),源碼的編譯環(huán)境為PyCharm2019.2,CUDA 版本為10.1,cudnn 版本為7.6.0。采用了0.19.1 版本的機器學習模塊scikit-learn。
本研究選擇了三種不同類型的分類器建立中風病中醫(yī)證候分類模型:支持向量機(SVM)、反向傳播(BP)神經(jīng)網(wǎng)絡與梯度提升決策樹(GBDT)。
針對基于核函數(shù)的SVM,研究中對不同核函數(shù)進行了調參。對于線性核函數(shù),可調參數(shù)只有懲罰松弛變量C;對于徑向基核和多項式核,可調參數(shù)有懲罰松弛變量C 和核函數(shù)系數(shù)gamma。利用網(wǎng)格搜索方法進行參數(shù)尋優(yōu),懲罰松弛變量C 搜索范圍為[1 3 5 7 9 11 13 15 17 19],核函數(shù)系數(shù)gamma 搜索范圍為[0.000 01 0.000 1 0.001 0.1 1 10 100 1 000],網(wǎng)格搜索過程中采用五折交叉驗證,五次交叉驗證下模型準確率均值作為模型評估指標。訓練表明:C為5,gamma為0.1時的基于徑向基核的支持向量機模型性能最優(yōu)。
針對BP神經(jīng)網(wǎng)絡,可調參數(shù)有學習率、動能衰減系數(shù)、批處理大小以及隱層節(jié)點數(shù)。首先利用網(wǎng)格搜索方法對學習率和動能衰減系數(shù)進行聯(lián)合調參,學習率搜索范圍為[0.2 0.1 0.02 0.01 0.002 0.001],動能衰減系數(shù)搜索范圍為[0.7 0.75 0.8 0.85 0.9 0.95],訓練表明:學習率為0.2,動能衰減系數(shù)為0.9時模型性能最優(yōu)。然后單獨設置批處理大小,搜索范圍設置為[20 40 60 80 100],訓練表明:批處理大小為40時模型性能最優(yōu)。最后對隱層節(jié)點數(shù)進行討論,選擇從[20 200]區(qū)間中,每次增加20,訓練表明:隱層節(jié)點數(shù)為140時模型性能最優(yōu)。所以,BP神經(jīng)網(wǎng)絡參數(shù)設置為:學習率為0.2、動能衰減系數(shù)為0.9、批處理大小為40、隱層節(jié)點數(shù)為140。
針對GBDT,可調節(jié)參數(shù)有學習率與基分類器個數(shù)。依舊利用網(wǎng)格搜索方法進行參數(shù)尋優(yōu),學習率搜索范圍為[0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9],基分類器個數(shù)搜索范圍為[20 30 40 50 60 70 80 90 100],訓練表明:當學習率為0.1,基分類器個數(shù)100時,模型性能最優(yōu)。
三個模型都以年齡、性別、身高、體質量與臨床中風病常見的癥狀,包括中風主要癥狀、舌象、脈象數(shù)據(jù)作為輸入,中風臨床常見證候——氣虛血瘀證的判斷作為輸出。
利用不同分類器搭建的中風病中醫(yī)證候分類模型性能對比見表3,基于SVM的中風病中醫(yī)證候分類模型準確率為86%,靈敏度為81%,特異度為92%,都優(yōu)于BP 神經(jīng)網(wǎng)絡與GBDT。結合圖1不同分類器下模型的ROC曲線可得:相較于其他分類器模型,基于支持向量機建立的模型在中風病中醫(yī)證候分類上更具優(yōu)勢。
圖1 不同分類器下中風病中醫(yī)證候分類模型ROC曲線
表3 不同分類器下中風病中醫(yī)證候分類模型性能對比
本研究利用SVM、BP神經(jīng)網(wǎng)絡、GBDT建立中風病中醫(yī)證候分類模型,以中風病患者的年齡、性別、身高、體質量與臨床中風病常見的癥狀,包括中風主要癥狀39 個、舌象32 個、脈象23 個數(shù)據(jù)作為輸入,中風臨床常見證候——氣虛血瘀證的判斷作為輸出,三個模型進行比較。結果顯示:基于SVM 的中風病中醫(yī)證候分類模型準確率達到86%,相較于其他分類器模型,在中風病中醫(yī)證候分類上更具優(yōu)勢。
本研究提示機器學習在中風病中醫(yī)證候分類過程中的適用性,但是目前搭建的模型還只是理論模型,還需進一步改善。在今后的研究中,還需要擴大訓練樣本,優(yōu)化輸入特征、提高算法準確率、增加與更多算法的對比,以期建立更優(yōu)化的中風中醫(yī)證候分類模型,進一步探索中風病中醫(yī)證候的數(shù)字化、自動化、智能化。
(致謝:感謝黑龍江中醫(yī)藥大學所提供的數(shù)據(jù),同時感謝天津慧醫(yī)谷科技有限公司提供的寶貴建議與幫助。)