夏淑潔,楊朝陽,周常恩,辛基梁,張佳,杜國棟,李燦東
(1.福建中醫藥大學中醫證研究基地,福建福州 350122;2.福建省中醫健康狀態辨識重點實驗室,福建福州 350122;3.廈門大學智能科學與技術系,福建廈門 361005)
辨證論治是中醫的精髓,精準辨證是有效治療的前提。當前,中醫辨證存在客觀化、定量化、標準化等方面的不足,限制了中醫的進一步傳承和發展,因此,迫切需要運用現代科學技術的理論和方法推進中醫診斷的客觀化與規范化研究[1-2]。人體是一個復雜的有機整體,證候具有多維性、模糊性、復雜性的特點,難以簡單用傳統單一、線性的分析方法進行研究[3-4]。而數據挖掘技術,尤其是機器學習[5],利用海量臨床數據,通過模擬中醫臨床診斷推理過程來挖掘臨床診斷數據中繁雜的病-證-癥關系,可克服人類認知和思維的局限性,充分照顧到中醫整體觀、模糊性、非線性的特點,從而尋找大數據下隱藏的中醫知識和規律,助力中醫診斷客觀化的進程。以下對近年來常見機器學習方法在中醫診斷領域的應用進行述評。
支持向量機(support vector machine,SVM)于1995年首次提出,是一種以統計學理論為基礎的模式識別的機器學習方法[6]。SVM是機器學習領域若干技術集大成者,它具有嚴格的理論和數學基礎,可較好地實現結構風險最小化思想,能較為合理地解決小樣本、非線性、高維數和局部最小等實際問題。SVM的關鍵在于針對樣本數據不可分情況,利用核函數把一個復雜的分類任務映射,使之能轉化成一個線性可分問題[7]。因而,SVM主要的優勢在于:(1)專門針對有限樣本設計,目標是獲得現有信息下的最優解,根據有限的樣本信息在模型的復雜性及學習能力之間尋求最佳折衷[8]。(2)算法將實際問題通過非線性變換映射到高維特征空間,并構建線性最佳逼近來解決原來空間的非線性逼近問題,這樣既保證了機器學習取得最好推廣能力(泛化能力),并且SVM的算法復雜性與數據維數無關,因而能較好解決維數災難問題[9]。
由于SVM不僅可以處理高維的特征向量,將非線性問題轉化為線性可分問題,并且在樣本數較少時也能獲得較好分類效果,故SVM近年來在中醫領域被大量使用。許明東等[10]將支持向量機方法應用在高血壓病中醫證候診斷中,以常見癥狀、舌苔及舌體、脈象的量化數據為輸入變量,高血壓病證型為輸出變量,建立了基于SVM的高血壓病中醫證候診斷模型,該模型總體準確率為90.0%。Wang J等[11]以SVM為基礎構建了冠心病中醫證候診斷模型,并得出8個不同證型中各癥狀條目的權重,可從深層次反映出診治經驗。Sun Z Q等[12]通過采用非線性多元分析對癥狀信息降維處理,之后分別運用神經網絡和多分類SVM對證候進行分類,發現中醫癥狀信息本身具有非線性和多維性,運用多分類SVM比神經網絡更具優勢。但SVM算法對大規模訓練樣本難以實施。此外,在中醫數據挖掘的實際應用中,一般要解決多類的分類問題,而SVM主要解決二分類問題,對多分類問題存在困難,此時可考慮通過多個二類支持向量機的組合或構造多個分類器的組合來解決[13]。
決策樹[14](decision tree,DT)是一種相對簡單的機器學習分類算法。其構建思想來源于人們的決策過程,在已知各種情況發生的概率基礎上,通過構成決策樹來評價項目風險,判斷可行性的決策方法。因這種決策分支構成的圖形很像一棵樹干,故稱為決策樹。樹中每個節點表示一個樣本屬性,每個分支則代表對該屬性的判斷,而每個葉子結點則對應最終的類別,通常將其看作一個預測模型,代表對象屬性與對象值之間的一種映射關系[15-16]。該模型易于理解和實現,用戶即使未學習相關背景知識,也能發掘其簡單直觀的分類規則,只要通過適當的解釋,用戶就能理解決策樹所表達的意義。其次,算法運行速度快,易轉化為分類規則,分類準確率較高,只要沿著根結點向下一直走到葉子結點,沿途分裂條件是唯一且確定的。但決策樹在處理大樣本集時,易出現過擬合現象,從而降低分類的準確性。
目前主要的決策樹算法有ID3、C4.5、C5.0和CART算法等,常用于建立中醫證的診斷模型、歸納名老中醫辨證過程等。此外,基于大量決策樹而形成的隨機森林方法還可用于證候特征權重的確定。田艷鵬等[17]采用C5.0、CRT、CHAID、QUEST決策樹方法和神經網絡方法提取痰濕壅盛證的診斷規律,發現C5.0決策樹模型的準確率(93.7%)最高。蘇翀等[18]利用基于KL距離的決策樹建立慢性阻塞性肺病中醫診斷模型,以F-Measure、G-Mean、ROC曲線下面積以及精度召回率曲線下面積作為評價指標,結果表明采用改良的決策樹較傳統決策樹可取得更好的預測效果。劉廣等[19]基于C4.5決策樹算法對經預處理后的800例中醫胃炎患者的辨證數據進行分類,并提取其分類規則,該規則基本符合中醫胃炎的辨證規律以及名老中醫診治胃炎的診療經驗。呂航等[20]運用CHAID算法,構建基于中醫人格、體質類型預測2型糖尿病(T2MD)患者合并冠心病的患病風險模型,結果顯示以少陰人格、陰寒質、血瘀質為預測變量構建的糖尿病患病風險模型預測準確度為93.6%,所得的3條預測冠心病患病風險的規則也符合中醫理論。蔡曉路[21]采用隨機森林方法實現了類風濕關節炎證型判別模型的構建,并對特征癥狀進行權重計算,其權重計算結果與現行的證候特征相比,將有助于證候表述的完善。通過以上分析,可以看出決策樹模型具有較好的解釋性,故在中醫診斷領域應用較廣,但該方法存在過擬合現象,這將是今后研究過程中需要解決的問題。
K近鄰(K-nearest neighbor,KNN)分類算法指假設一個樣本在特征空間中的K個最相似(即特征空間中最近鄰)的樣本中大多數屬于某一類別,則該樣本也屬于這個類別[22]。該算法有3個基本要素:K值、距離度量和分類決策規則。其中K值的選擇與結果密切相關,K值較小意味著只有與輸入實例較接近的訓練實例才會對預測結果有作用,但容易發生過擬合;而K值較大時,學習的估計誤差減少,但近似誤差增大,此時與輸入實例較遠的訓練實例也會對預測起作用,可導致預測發生錯誤。一般來說,K值常選用一個較小數值,通常采用交叉驗證方法選擇最佳K值[23]。該算法的特點為:首先,無需參數估計與訓練,比較簡單有效,精度高,且對噪聲不敏感;其次,因KNN依靠周圍有限的鄰近樣本,因而對類域交叉或重疊較多的待測樣本來說,KNN相對更理想,也更適合多分類問題。但KNN分類算法也存在著解釋性較差、計算量大、當樣本不均衡時可能導致結果偏差等問題。
近年來,針對本算法的不足之處,研究者不斷進行改進,并衍生出了一系列的算法,如K-D樹KNN算法、快速KNN算法、ML-KNN算法等。其中,ML-KNN模型為近年來典型的多標簽學習算法,具有簡單、易行、錯誤率較低等優點,是在傳統的單標簽KNN模型基礎上結合貝葉斯算法發展起來。中醫的臨床表征(證候)往往不會單一出現,而是彼此聯系交織,即涉及到證型往往不是單一的,而是兼夾的。ML-KNN算法可將與診斷相關的多個標簽作為一個整體處理,保留了各標簽之間的相關關系,因而也更符合中醫核心的整體思維。王剛[24]對ML-KNN算法進行了改良,并將該改良的方法用于401例帕金森病患者的病例數據分析,分析結果提示該方法在對帕金森的中醫診斷中取得了良好的效果。辛基梁等[25]研究中醫健康狀態辨識中的多標記分類方法,與單標記方法KNN相比,ML-KNN性能更佳。Liu G P等[26]通過設計中醫冠心病問診標準化量表,并利用MLKNN技術構建了基于中醫問診的診斷模型,并與RankSVM、BPMLL及KNN相比較,前者具有更好的預測效果,并且基于ML-KNN算法建立的冠心病診斷中醫辨證預測模型,可同時解決多證素兼夾的標記問題。可見,與單標簽KNN相比,基于多標簽的ML-KNN算法更適合中醫證候診斷過程中存在的多標簽即證素、證型等兼夾問題。
人工神經網絡(artificial neural network,ANN)是模仿生物神經系統中神經元的一種數學處理方法。ANN由大量處理單元(神經元)互聯組成非線性大規模自適應動態系統,依靠系統的復雜程度,通過調整大量單元間相互連接關系,從而達到處理信息的目的[27]。ANN模型的性能主要與神經元的特性、神經元之間相互連接形式以及為適應環境而改善性能的學習規則有關。ANN構成原理與功能更接近人腦,擅于適應環境、總結規律以處理模糊復雜、推理規則不明確的問題,不用考慮各變量之間是否獨立及滿足正態分布等條件,并且ANN可給出結構參數,這也與傳統的統計分析不一樣[28]。而在此基礎上進行算法拓展,進一步興起了深度學習,它運用分層抽象的思想,被應用在圖像識別、語音識別等領域,具有更高的識別精度[29]。然而,因ANN具有黑箱運行的特點,ANN在解釋推理過程和推理依據及其存儲知識的意義時存在一定困難。目前,常見的神經網絡主要有向前神經網絡、BP神經網絡、卷積神經網絡、Hopfield神經網絡等。
臨床上,證候之間、證候與診斷結果之間、證候與方藥之間的關系具有非線性、復雜性、模糊性、非定量的特點,因而ANN比較符合中醫辨證理論和中醫數據處理的運用要求[30]。辛基梁[31]采用“中醫證素辨證系統”作為病例采集工具,采用基于神經網絡的多標記分類算法對1 146例病例進行結果預測,其平均精度可達到0.79。岳桂華等[32]研究高血壓中醫證候與分級的關系時,運用基于共軛梯度算法的BP神經網絡技術建立模型,該模型對高血壓分級的平均識別率可達75%,說明BP神經網絡技術應用于高血壓中醫證候與分級研究具有方法學上的可行性。王娟等[33]應用多元數據統計和神經網絡挖掘方法構建基于多系統理化指標信息的慢性心力衰竭(CHF)血瘀證診斷模型,篩選出有統計學意義的指標信息20項,測試樣本的準確率達到82.4%。由此可見,ANN表現出極大的靈活性和自適應性,因此人工神經網絡技術可運用于智能中醫辨證系統構建過程中[34]。但人工神經網絡技術具有難解釋性等缺陷,難以顯現隱藏在網絡中的知識。為進一步適應醫學領域,可以使用決策樹、規則提取等技術對人工神經網絡技術進行改進,提高系統的可理解性。
貝葉斯網絡(Bayesian networks)又稱貝葉斯信念網絡,是由Pearl J[35]在1988年提出,現已成為近些年的研究熱點。貝葉斯網絡作為一種更高級、應用范圍更廣的貝葉斯分類算法,其主要思想是將概率統計應用到復雜領域中以進行不確定性推理及數據分析,并充分考慮變量間的依賴關系,能更好地提高分類正確率,故被認為是表達不確定知識和推理的最有效理論模型之一[36]。貝葉斯網絡的結構為一個有向無環圖,主要由節點和連接這些節點的有向邊構成。其中,節點表示已知或未知的隨機變量;節點間的有向邊記錄了兩節點間的條件概率,以此可類推表示所有節點間的關系[37]。但因貝葉斯網絡的建造是一個復雜的任務,故需要該領域專家的參與并不斷完善。另外,因各節點間關系復雜,條件概率表存在著難以計算且不便使用的問題[38]。
貝葉斯網絡能充分利用先驗知識,并用圖表來顯示變量之間的關系和解釋因果鏈接關系,可以處理不完全、不精確、有噪聲的信息,因而也被多次運用到中醫診斷問題上[39]。呂胤[40]分別運用決策樹、支持向量機和貝葉斯網絡3種數據挖掘分類方法對高血壓病的臨床病例進行分類處理,發現貝葉斯網絡分類算法準確率最高,耗時最短。徐全壹等[41]比較分析貝葉斯網絡和聚類分析在構建腎虛證數學診斷模型中的差異,發現聚類分析能大致構建出腎虛證癥狀的主要結構系統,但可能會丟失很多重要的特性,而貝葉斯網絡分析結果提供了一個清晰的整體腎虛證癥狀系統,并成功地檢測到4種不同的腎虛證癥狀類型,故認為貝葉斯網絡可更有效地分析出腎虛證癥狀系統的不同層次。徐璡等[42]在專家辨證和先驗知識的基礎上運用貝葉斯網絡對冠心病患者四診證候信息進行分類識別,發現該模型對本病5個不同證型的識別率較高,因而認為該方法在冠心病中醫證候分類客觀化研究中具有較好的應用前景。可見,運用貝葉斯網絡可以揭示癥狀之間及癥狀與證型之間的關系,并歸納出該證型具有代表性的癥狀,這將不僅有助于證候診斷的標準化和規范化,還可為輔助診療提供參考。
AdaBoost算法是一種集成算法,即將多個機器學習算法構成集成分類器來完成學習任務[43]。該算法的理論基礎是假設存在“弱”分類器,這種弱分類器的預測能力(分類正確性大于0.5)僅比隨機猜測準確一點,當其個數趨于無窮個數時,最終形成一個預測錯誤率很低的“強”分類器[44]。作為一種算法框架,AdaBoost可用于絕大多數的機器學習算法以提高原算法的預測精度,故被評為數據挖掘十大算法之一。它的自適應性源于前一個基本分類器分錯的樣本會得到加強,加權后的全體樣本再次被用來訓練下一個基本分類器。同時,在每一輪中加入新的弱分類器,直到達到某個預定的足夠小的錯誤率或指定的最大迭代次數[45]。AdaBoost算法具有理論扎實、不需要先驗知識、能夠顯著改善子分類器預測精度等優點[46-47],其在解決各行業應用問題中都獲得了較好的結果。但在運用AdaBoost集成算法的過程中還需要解決如何得到若干個個體學習器和如何選擇一種合理的結合方法的關鍵問題。
目前,AdaBoost算法在中醫領域的應用研究不多,主要集中在舌診、面診等方面。胡申寧[48]根據傳統的中醫理論,將AdaBoost算法融合到舌色、苔色的判別中,先在HSV[色調(H),飽和度(S),明度(V)]顏色空間中對舌象進行特征提取、降維,提取有效的舌象特征,而后通過AdaBoost算法把一系列弱分類器提升為強分類器,實現了具有較好魯棒性的舌體自動分割。吳墩華[49]在中醫面診規范化研究中,運用AdaBoost和FCM聚類算法對人臉特征進行粗定位,并在這些矩形區域中利用聚類獲得它們的初始區域,在此基礎上以面色臟腑分屬圖上特征點的顏色作為面色特征,獲得了84.6%的識別率。此外,也有將AdaBoost算法運用在中醫證候規范化研究。佟旭[50]嘗試運用AdoBoost算法構建糖尿病腎病患者的多標簽的證型分類模型,其分類準確率接近98%,得出該方法的算法結構和原理對于解決中醫多維度數據具有良好的優勢。可見,該方法目前主要應用于中醫望診研究領域,其特點是可綜合多種算法的優勢,但具體如何針對中醫數據特點實現更好地結合亦需進一步研究。
中醫診斷的基本原理為“司外揣內”,通過望、聞、問、切方式獲得患者的癥狀、體征,從而推測導致疾病發生的原因及當前階段的證候特點,又稱之為“因發知受”[51-52]。中醫診斷過程是一個多源信息的獲取和處理、整合的過程,由于傳統中醫診法主要憑借醫生的個人經驗來辨析與判別病癥,因而診斷的結果不可避免地受到醫生主觀意識的影響。近年來,對中醫四診的客觀化和規范化研究方興未艾[53]。隨著人工智能的發展和多學科融合交叉并廣泛應用于中醫證候診斷的研究,中醫診斷客觀化、規范化研究得到了有力的推動,通過機器學習可尋找中醫大數據下的隱藏知識和規律。然而面對中醫領域存在的數據種類繁多、結構多樣并且缺乏統一標準的問題,如何保證數據集的質量是目前面臨的巨大挑戰[54]。今后在促進機器學習運用于中醫研究領域時,需針對中醫診療中的各項問題制定統一的標準并規范數據收集。