顧天宇,嚴壯志,蔣皆恢
(上海大學通信與信息工程學院,上海 200444)
辨證論治指導中醫臨床診療,是中醫理論的核心和精髓[1]。中風病作為常見的腦血管病,針對其辨證論治最早可以追溯到《黃帝內經》時期。在臨床上對中風患者進行辨證論治,可以得到良好的預后效果。氣虛血瘀證是中風常見的證型之一,占缺血性中風70%以上[2],因此針對氣虛血瘀證進行證候分類具有臨床意義。
目前,關于運用現代科學技術的理論和方法推進中醫證候分類的數字化、自動化與智能化研究較多。如陳建新等[3]利用貝葉斯方法、神經網絡方法、支持向量機方法和決策樹方法建立基于冠心病患者中醫四診信息的證候分類模型;覃裕旺等[4]、許明東等[5]利用BP神經網絡方法、支持向量機方法建立高血壓病中醫證候分類模型,但是關于中風病中醫證候分類模型的研究鮮有報道。本研究基于文獻資料,應用支持向量機(Support Vector Machine,SVM)、反向傳播(Back Propagating,BP)神經網絡與梯度提升決策樹(Gradient Boosting Decision Tree,GBDT)建立中風病中醫證候分類模型,以年齡、性別、身高、體質量與臨床中風病常見的癥狀,包括中風主要癥狀、舌象、脈象數據作為輸入,氣虛血瘀證的判斷作為輸出。
選擇2020年3月—2021年4月在黑龍江中醫藥大學附屬醫院治療的中風病患者共669例,一般資料信息見表1。其中辨證為氣虛血瘀證382 例,非氣虛血瘀證287例。
表1 669例中風病患者一般資料比較(±s)

表1 669例中風病患者一般資料比較(±s)
辨證類型氣虛血瘀非氣虛血瘀例數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
中風病中醫診斷標準參照中華中醫藥學會發布的《中醫內科常見病診療指南中醫病證部分》[6]與國家中醫藥管理局發布的《中醫病證診斷療效標準》[7]。
中風中醫臨床診斷信息所用的癥狀、證候名稱參考《中醫臨床診療術語證候部分》[8]與北京中醫藥大學總結的中風證候要素診斷量表[9]。觀察半身不遂、口舌歪斜、面部麻木等39 個癥狀,舌象分為舌紅、舌淡白、舌絳等32 個癥狀;脈象分為脈弦、脈數、脈澀等23 個癥狀。每個癥狀分為無、有兩種情況,分別用0、1表示。具體見表2。

表2 中風病中醫臨床診斷癥狀
①經頭顱CT或MRI診斷為中風的住院患者;②未用藥或未長期使用藥物而干擾證型判斷患者;③由兩名或兩名以上臨床醫師進行辨證論治。
①不符合上述納入標準;②已受到系統用藥干擾患者;③缺少臨床醫生證型判斷記錄患者。
研究數據共669例,按照8∶2隨機劃分為訓練集和測試集,其中訓練集535例,測試集134例,訓練集輸入中風病中醫證候分類模型中進行五折交叉驗證訓練模型,測試集用于評估模型的性能,評估指標包括準確率、敏感度、特異度以及AUC。
研究采用操作系統為Linux Ubuntu 16.04系統,源碼的編譯環境為PyCharm2019.2,CUDA 版本為10.1,cudnn 版本為7.6.0。采用了0.19.1 版本的機器學習模塊scikit-learn。
本研究選擇了三種不同類型的分類器建立中風病中醫證候分類模型:支持向量機(SVM)、反向傳播(BP)神經網絡與梯度提升決策樹(GBDT)。
針對基于核函數的SVM,研究中對不同核函數進行了調參。對于線性核函數,可調參數只有懲罰松弛變量C;對于徑向基核和多項式核,可調參數有懲罰松弛變量C 和核函數系數gamma。利用網格搜索方法進行參數尋優,懲罰松弛變量C 搜索范圍為[1 3 5 7 9 11 13 15 17 19],核函數系數gamma 搜索范圍為[0.000 01 0.000 1 0.001 0.1 1 10 100 1 000],網格搜索過程中采用五折交叉驗證,五次交叉驗證下模型準確率均值作為模型評估指標。訓練表明:C為5,gamma為0.1時的基于徑向基核的支持向量機模型性能最優。
針對BP神經網絡,可調參數有學習率、動能衰減系數、批處理大小以及隱層節點數。首先利用網格搜索方法對學習率和動能衰減系數進行聯合調參,學習率搜索范圍為[0.2 0.1 0.02 0.01 0.002 0.001],動能衰減系數搜索范圍為[0.7 0.75 0.8 0.85 0.9 0.95],訓練表明:學習率為0.2,動能衰減系數為0.9時模型性能最優。然后單獨設置批處理大小,搜索范圍設置為[20 40 60 80 100],訓練表明:批處理大小為40時模型性能最優。最后對隱層節點數進行討論,選擇從[20 200]區間中,每次增加20,訓練表明:隱層節點數為140時模型性能最優。所以,BP神經網絡參數設置為:學習率為0.2、動能衰減系數為0.9、批處理大小為40、隱層節點數為140。
針對GBDT,可調節參數有學習率與基分類器個數。依舊利用網格搜索方法進行參數尋優,學習率搜索范圍為[0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9],基分類器個數搜索范圍為[20 30 40 50 60 70 80 90 100],訓練表明:當學習率為0.1,基分類器個數100時,模型性能最優。
三個模型都以年齡、性別、身高、體質量與臨床中風病常見的癥狀,包括中風主要癥狀、舌象、脈象數據作為輸入,中風臨床常見證候——氣虛血瘀證的判斷作為輸出。
利用不同分類器搭建的中風病中醫證候分類模型性能對比見表3,基于SVM的中風病中醫證候分類模型準確率為86%,靈敏度為81%,特異度為92%,都優于BP 神經網絡與GBDT。結合圖1不同分類器下模型的ROC曲線可得:相較于其他分類器模型,基于支持向量機建立的模型在中風病中醫證候分類上更具優勢。

圖1 不同分類器下中風病中醫證候分類模型ROC曲線

表3 不同分類器下中風病中醫證候分類模型性能對比
本研究利用SVM、BP神經網絡、GBDT建立中風病中醫證候分類模型,以中風病患者的年齡、性別、身高、體質量與臨床中風病常見的癥狀,包括中風主要癥狀39 個、舌象32 個、脈象23 個數據作為輸入,中風臨床常見證候——氣虛血瘀證的判斷作為輸出,三個模型進行比較。結果顯示:基于SVM 的中風病中醫證候分類模型準確率達到86%,相較于其他分類器模型,在中風病中醫證候分類上更具優勢。
本研究提示機器學習在中風病中醫證候分類過程中的適用性,但是目前搭建的模型還只是理論模型,還需進一步改善。在今后的研究中,還需要擴大訓練樣本,優化輸入特征、提高算法準確率、增加與更多算法的對比,以期建立更優化的中風中醫證候分類模型,進一步探索中風病中醫證候的數字化、自動化、智能化。
(致謝:感謝黑龍江中醫藥大學所提供的數據,同時感謝天津慧醫谷科技有限公司提供的寶貴建議與幫助。)