楊柳,徐晴文,黃汝佳,朱姝靜,梁昊,彭清華
(湖南中醫藥大學,湖南 長沙 410208)
關聯規則是指兩個或者多個變量的取值之間存在某種規律,該規律不涉及因果關系,但往往會存在“同時存在”或“從一對象可推出另一對象”的現象。關聯規則作為數據挖掘的重要方法之一,在中醫藥領域的應用越來越廣泛。但目前關聯規則在中醫藥領域的應用仍較為粗淺生硬,處于“數據豐富,信息匱乏”的局面。而較復雜的規則和算法以及繁多的分析平臺選擇,依然會造成從業者的研究困擾以及結果的不準確性。本文從關聯規則相關概念的介紹入手,在分析比較常用算法及軟件的同時,著重闡釋了目前關聯規則在中醫藥領域的應用,促進醫療工作者對醫療數據之間的關聯進行更好地理解及運用,在疾病的診斷與治療中做出更高效、更準確的醫療決策,從而推動計算機輔助在中醫藥路線的發展。
關聯規則分析又稱為購物籃分析。超市從大量商品數據分析中,發現了顧客購買商品之間的規律,將經常同時被購買的商品安排到相鄰貨架,從而提高銷售額,這一行為被稱為“購物籃分析”,即從大量數據中發現隱藏的聯系與規律。
1.2.1 項集
所有事務中每一對象可以稱為一個項,一個或多個項的組合稱為項集。
1.2.2 支持度計數σ
指項集在事務中出現的次數。
1.2.3 支持度S
包含項集的事務X占所有事務數量N的比例。

1.2.4 頻繁項集
如果對項目集的支持度設定一個最小閾值,那么所有支持度大于這個閾值的項集就是頻繁項集。
1.2.5 置信度C
是指Y在包含X的事務中出現的頻繁程度。

1.2.6 提升度
判斷Y 在整體個數據集出現的頻率是否和X 存在的頻率等同。

如果該值等于1,說明兩個條件沒有任何關聯。如果小于1,說明X 與Y 是負相關的關系,意味著一個出現可能導致另外一個不出現。大于1 則表示具有正相關的關系。一般在數據挖掘中當提升度大于3 時,挖掘出的關聯規則是有價值的。
提升度是一種比較簡單的判斷手法,實際中受零事務(既不包含X 也不包含Y 的事務)的影響比較大。所以如果數據中含有的零事務數量較大,該度量則不適合使用。
關聯規則算法大致可分為寬度優先算法、深度優先算法、數據集劃分算法、采樣算法和增量式更新算法等[1]。算法一般分為兩個關鍵步驟:①生成所有頻繁項集;②生成強關聯規則,即找出頻繁項集中大于等于最小置信度閾值的關聯規則[2]。目前在相關領域關聯規則較常用的算法主要是Apriori 算法和FP-growth算法。
1.3.1 Apriori算法
Apriori 算法是寬度優先算法的一種,它需掃描數據庫的次數等于最大頻繁項集的項數。Apriori算法有兩個致命的性能瓶頸:①產生的候選集過大(尤其是2-項集),算法必須耗費大量的時間處理候選項集;②多次掃描數據庫,需要很大的1/0 負載,在時間、空間上都要付出很大代價[1]。但王姣等[3]根據支持的反單調性這一特性,主要通過候選產生和候選前剪枝這兩個關鍵步驟,對Apriori 算法進行了改進,極大提高了計算效率。流程圖見圖1。

圖1 Apriori算法流程圖
1.3.2 FP-growth算法
FP-growth 算法是深度優先算法中最新最高效的,且從本質上不同于Apriori 算法的經典算法。在算法中有兩個關鍵步驟,一是生成頻繁模式樹FP-tree,二是在頻繁模式樹FP-tree上挖掘頻繁項集。流程圖見圖2。

圖2 FP?growth算法流程圖
與Apriori 算法相比,FP-growth 算法具有以下優點:①FP-growth 算法只需掃描數據庫2 次,避免多次掃描數據庫;②不需要產生龐大的候選項集,在挖掘過程中大大減少了搜索空間,在時間效率和空間效率上都有一個量級的提高[1]。而楊云等[4]更是在此基礎上提出了FP-growth 的改進算法,進一步縮短了建立FP-tree的時間。
探討數據之間的關聯規則往往需要一些輔助軟件進行分析,目前較為常見的有SPSS Modeler、R等,在中醫藥領域較為常用的還包括中醫傳承輔助平臺或古今醫案平臺[5],為有相關數據處理需求的人員提供了極大的便利。
該平臺主要應用于中醫藥研究領域,目前主要集中在名老中醫經驗研究、疾病用藥規律研究、組方配伍研究等方面。軟件將信息資料的錄入、保存、提取、統計和分析等功能融為一體,優勢在于方便非專業數據處理人員操作,同時擁有較豐富和全面的中醫藥領域信息數據等[6]。但是應用范圍較窄,目前僅用于藥物配伍規律分析[7]。TCMISS 一般僅提供簡單粗糙的淺層分析,無法滿足更深度的分析需求。
在研究中,SPSS 公司推出的數據挖掘工具SPSS Modeler 軟件中關聯規則分析運用得尤為廣泛。作為一個開放式數據挖掘工具,其分析過程及結果非常容易與直觀。在使用操作簡單、不需要任何編程工作的基礎上,擁有強大的數據預處理和轉換功能,可提供豐富的數據挖掘模型和靈活的算法[8]。但在使用過程中,該軟件存在離群點檢測、特征選擇等節點預測性能不佳等問題[9]。
R是集統計分析于一體的、幾乎可以滿足所有科研需求的統計分析軟件。它擁有多種數據分析方法,在具有強大的挖掘分析能力和擴展性的同時,可以通過arulesViz和arules等功能包,對數據進行更好的可視化輸出[10]。但是由于它無法在R 語言的基礎上開發互聯網應用程序,其最終結果往往通過其他語言顯示[11]。
關聯規則起源并最早應用于購物籃數據,由于其自身高度的兼容性和可操作性,現如今也被廣泛應用于醫學數據特別是中醫藥的數據處理中。如在醫學診療方面,可以提高診斷及治療精準度,給人們帶來更高效率和更高質量的醫療服務;在藥物應用方面,可以不斷地優化藥物聯用組合的同時提供開發新藥的方向;此外,在公共衛生管理、醫療器械使用、醫療人員規培等一些方面均有不同程度的優化作用[12]。
在面對數據處理時,醫學數據與購物籃數據存在諸多共同點。如只要將患者與疾病比作不同商品,根據其呈現的置信度支持度等數據,便能得到患者與疾病之間的對應聯系與規律,極大地提高了疾病診療效率。該流程可以應用于醫學眾多不同領域和數據中,如藥物開發研究、醫療設備使用情況,再如中醫證候、癥狀、中藥配伍之間的關聯等。
然而醫學數據和超市商品數據也存在著不同。一方面,超市商品數據關聯可來源于日常經驗,醫學數據關聯需要大量演算分析和專家經驗。超市數據的關聯規則的邏輯常建立于家庭這個整體,如一個家庭同時存在需要喝啤酒的成年人、使用尿布的嬰兒,且牛奶與面包常常是固定的早餐搭配等,其數據邏輯簡潔清晰。而醫學數據常常作用于單獨個人,結果常具有不可控性,如一位胃癌患者卷入一場意外中導致失明,而胃癌與失明并沒有直接上的聯系。因此醫學數據往往需要更大量的數據證明其中的關聯不是偶然[13]。
另一方面,超市商品數據關聯為單維聯系,而醫學數據為多維聯系。超市商品數據僅僅是商品之間的單維聯系,一旦撤去中間載體,數據關聯則無法解釋。如前文中顯示,如果不用家庭作為載體,則無法解釋啤酒與尿布等商品之間的關系。而醫學數據不同,如中醫常利用關聯規則探究名老中醫用藥經驗規律時,常常從理法方藥各方面分析,一旦形成癥-證-藥等完整邏輯鏈條后,任意兩點又可組合并擁有合理的解釋。
關聯規則在中醫藥領域的應用方式,最主要是通過從歷代所流傳下的醫案典籍和當代中醫臨床實踐經驗中,獲取大量可靠數據加以分析,總結出理法方藥之間的一系列規律。在中醫藥數據挖掘中對關聯規則的使用,不管是對醫學臨床事業還是中醫學術經典的傳承和改進,都起了極大的推動作用。筆者將從癥狀、證素、藥物本身的一維關聯及彼此之間相互聯系的二維關聯進行如下探討。
一維關聯指的是同一性質的事物中點與點構成的線性聯系。通過發現一個事件上兩個或多個點之間的聯系,從而可以推出該事件中絕大多數點之間的聯系與規律。具體在中醫藥數據上,一般是局限在癥-證-藥的某一個層級內部。層次圖見圖3。

圖3 癥-證-藥層次圖
4.1.1 癥狀關聯
目前在中醫研究癥狀之間的關聯上,研究方式往往僅是簡單基于某種病或證的前提下,然后就癥狀或癥狀組合與其研究內容關聯,如構成癥-證、癥-藥關聯等,然后進行進一步分析。而癥-癥關聯往往是單純作為其中一環,對所研究病證進行機理分析,增強其癥狀聯系等方面的認識。如艾軍等[14]在研究小兒肺炎的證候病機時,從熱、郁、痰三個角度出發,通過關聯規則分析得到各自核心癥狀組合,如咽紅腫痛-舌紅、咳嗽-氣促、咯痰-肺濕啰音等,然后進一步從核心癥狀組合分析其機理,進一步增強對小兒肺炎證候病機的理解。
目前癥狀關聯相關研究領域仍較為淺層,除了作為中間分析媒介,它同時可以作為獨立主題來討論。如通過探討癥狀與癥狀之間的聯系規律,研究癥狀之間的共通機制,預防并發癥的發生以及為后續治療方法提供新思路都具有借鑒意義。
4.1.2 證素關聯
證素是指構成證候的基本要素,可以分為病位證素和病性證素。但其三階雙網證素辨證體系和“降維升階”等思想,在利于證候特點歸納的同時,也提供著證候-證素-證名組合千變萬化的可能性[15]。
研究證素關聯,首先就在于歸納一組或多組癥狀的特性,然后與證素相關聯。其次再是研究疾病或證候中不同證素之間的關聯。前者如虞海虹等[16]在進行基于教材挖掘中醫證素診斷規則研究時,就挖掘出如腰膝酸軟-腎、月經量少-胞宮等病位病素診斷規律,也同時得到了如口苦、舌苔黃、尿短黃-熱證等病性證素診斷規律。而后者如楊繼等[17]從2 831 例新型冠狀病毒肺炎患者中,通過關聯規則分析,得出新型冠狀病毒肺炎的病性證素以濕、熱為主,病位證素則多與肺、脾腎相關。進一步得到4 個主要證候類型,其中就包括以濕、熱、肺-濕熱郁肺證為重要組合,為中醫研究相關領域提供的重要參考資料。
證素作為癥與證之間的媒介,可以推動對癥-證關聯更好的理解。通過關聯規則研究不同證素之間的組合規律,更有利于證候的明確診斷及相似證候之間的鑒別。同時,通過研究不同證候之間相同的證素,可以為研究證候之間的聯系提供新的思路。
4.1.3 藥物關聯
目前關于藥物關聯的研究,大多是在治療某一種病證的基礎上,對藥物配伍進行?。庩P聯分析。而藥物之間的關聯,可以根據單藥或藥對進行配伍規律總結,然后就所應用病證方面進行分析。如崔一然等[18]為了探討丹參-紅花藥對的用藥規律,在《中醫方劑大辭典》中提取相關方劑,發現丹參紅花-香附、丹參紅花-白芍等核心藥對多歸于心、肝經,且丹參紅花常與行氣活血等藥物聯用等,這一規律對指導臨床遣方用藥具有重要意義。而胡慧明等[19]在探討山楂的組方藥對規律時,不僅得出了其核心組合藥對、性味歸經的相關結論,同時在得到了主治疾病分布的情況下,分析了山楂在具體病證中所發揮的獨特功效與優勢,進一步明確了其在中醫臨床中的合理應用。此類研究對傳統中藥的作用機理及其臨床使用提供了新的思路,對開發新藥也起到了極大的推動作用。
二維關聯指的是不同性質事物之間構成的線與線聯系。事件在選取具有代表性的點組成不同的線性關系后,通過與另一事件所選出的線性關系組合,從而發現兩個或多個事件之間的聯系規律。
一般二維關聯的構建,往往是通過發現兩個事件a 與b 之間的項集聯系。首先在利用支持度設定閾值之后,在事件a和b中收集項集。兩個事件各自提取項集組合形成集合,同時組成的不同集合又構成一個大型項目集。從大型項目集隨機抽取子集,并在設定支持閾值后進行算法的計算,此時生成的項目集包括:僅包括a 的集合、僅包括b 的集合和同時包括a 和b 的集合。為探討a與b的關聯,選用同時包括a與b的集合。最后通過置信度、支持度等值進行降序排列找到具有代表性的集合,再從中分析a與b的關系[13]。
4.2.1 癥-證的關聯
中醫證候往往會由不同的癥狀組成,如何快速抓住核心癥狀進行證候診斷,提高診療速度與質量,利用關聯規則探討癥-證之間的關聯顯得十分必要。如張辛欣等[20]通過關聯規則分析得出心力衰竭相關證候與其相對的核心癥狀,如心腎陽虛證對應的核心癥狀是雙下肢水腫-心悸,而氣虛血瘀證的對應核心癥狀是胸悶-乏力以及舌質紫暗-乏力等,該結果對心力衰竭的證候分析起到了極大的作用。
研究癥-證關聯不僅有利于提高疾病相關證候的鑒別能力,同時對研究相關證候本身有一定意義。如林獷[21]在研究慢性腎小球腎炎的相關證型及癥狀時,關于脾腎虛證的分型及表現就曾提到,脾腎陽虛[虛寒]證的核心癥狀是腰膝酸軟-大便溏稀-畏寒肢冷等;而脾腎兩虛[虧虛]證的核心癥狀卻是舌苔薄-乏力-腰痛-脈濡等。這可能是由于構成證候的病性、病位不同,其所對應的具體癥狀也會有所改變。通過幾組相似證候中不同核心癥狀的鑒別分析,有利于更好地提高證型分辨的效率。
4.2.2 藥-方的關聯
由于中醫診治需辨證論治,臨床使用某首方劑時藥物組成往往會有所不同,或者同種藥物在不同的方劑使用時可以發揮不同的功用。為了研究相關方劑的核心傳承以及促進臨床藥物的靈活使用,關聯規則對于探討中藥與相關方劑之間的聯系顯得尤為必要。
其中最直白的聯系表現為,同樣的方劑在面對不同臨床表現時所進行的藥物加減變化,如陳麗萍等[22]在探討名老中醫應用二陳湯規律后,發現雖然經常有所加減,但橘紅-半夏-茯苓-甘草為二陳湯最核心的藥對,另外通過分析最常用的配伍藥物及功效,如萊菔子-紫蘇子-白芥子合用降氣化痰、白術-山藥補氣健脾等,有利于指導二陳湯的臨床運用。
而方-藥關聯的內容,除了具體方劑的藥物組合分析以外,還可以從發現新處方、歸納方劑效用、量效關系研究等多個方面闡釋分析[23]。對相關方劑的關聯規則進行分析,不僅有利于經典藥方更好地傳承,對指導臨床臨證加減也具有極大的意義。
4.2.3 藥-證的關聯
通過關聯規則探討藥-證之間聯系,主要是針對某種證型找出其關聯度最高的藥物或藥對。一般來說,目前大多數研究多是從病-證-藥的大前提出發進行藥-證對應的,這是因為相同的證型所對應的疾病往往不同,根據具體病證的病位等不同,所歸納的藥物規律也會有所差異。
比如同樣是研究治療氣虛血瘀證的用藥規律,喬利杰等[24]在基于文獻研究的基礎上統計治療冠心病心力衰竭的單味藥物時,發現治療的主要藥物為黃芪、丹參、川芎;任風英等[25]通過研究李躍華的用藥規律發現,其治療慢性腦供血不足使用頻次前3 名藥物分別是葛根、川芎、炙黃芪;而申鑫惠等[26]在研究了當代醫家用藥規律后,發現在治療糖尿病周圍神經病變時,使用頻次較高的藥物為黃芪、當歸、川芎。通過對比發現,這些治療的核心藥物在存在差異的同時,也存在共同藥物。黃芪-川芎這一共同藥對可能是治療氣虛血瘀證的核心藥對。研究藥-證之間關聯,能為中醫證型和藥物的現代化提供相互促進的作用,為證型的相關臨床研究以及藥物的藥理分析等提供研究方向。
4.2.4 癥-藥的關聯
由于中醫臨床癥狀成因往往因人而異,當下大多數癥狀與藥物的聯系往往以?。C-癥-藥的方式呈現,而不是直接的聯系。然而也存在不同情況。
第一,當某些病理現象既是病又是癥時,那么就可以構建直接聯系。如張聰等[27]研究治療緩慢性心律失常的癥藥關聯時,當緩慢性心律失常作為一種病時,它需要通過緩慢性心律失常(病)-乏力、胸悶(癥)-附子、甘草(藥)這樣的組合間接構建關聯;而作為一種癥時,緩慢性心律失常卻可以與附子、丹參-甘草、黃芪-桂枝-甘草這樣的藥對構建直接關聯。同時也可以進一步深挖在癥-藥對應關系下,如藥物分類、歸經等關聯,如同樣是探討骨質疏松癥的用藥規律,鄭升鵬等[28]在發現配對藥物后,進一步得出治療骨質疏松的中藥多為補陽藥、活血化瘀藥,而歸經多在肝腎兩經的結論。
第二,從總結某名家醫案典籍出發,總結醫家治療經驗。張琴[29]基于《傷寒論》總結了癥狀與藥物的對應規律,如治療發熱時常用的藥物為桂枝、甘草、芍藥、大黃、半夏等,這些藥物的藥性多是辛溫、甘溫,涉及病種多為三陽病,符合病在三陽多實熱少虛寒的特點。再如與渴、身痛-豬苓、澤瀉以及大便難、發熱-厚樸、枳實等多組證候組及其相關藥對,提示該類藥物對相應癥狀(組)或具有特異性的治療作用,對指導臨床上具有借鑒意義。
盡管關聯規則在中醫數據挖掘中的應用逐漸廣泛、深入,為中醫藥的發展研究做出了重大貢獻,并不斷提供新的思路,然而關聯規則在中醫藥領域的應用依然存在局限。
首先,許多研究過于粗淺,只是依賴古今醫案云平臺或中醫傳承輔助平臺進行粗淺的挖掘。一者,中醫輔助平臺往往只能幫助非數據分析專業者進行數據處理,無法進行更深入的分析操作。二者,大多數研究在利用關聯規則上,往往僅是對某些病癥進行中藥配伍規律分析,大部分結果都是挖掘出的共識或常識,難以發現一些隱性的知識或規律。
其次,許多研究對關聯規則參數理解不深,僅僅依靠支持度和置信度進行數據支撐,而對提升度的參數不重視,這往往會導向一個并不準確的結果。如在分析治療某種病癥的核心藥物時,若僅靠置信度和支持度,結果往往指向使用頻次最高的藥物,然而頻次高的藥物卻不一定是起核心藥效的藥物,這就會導致后續研究內容的偏差,這時往往需要提升度等指標加以佐證。
再次,正如前文提及,現如今許多研究往往是中醫利用中醫輔助平臺進行分析,而缺乏中醫與計算機學者的交叉合作,雖然便于非專業人士進行數據分析的操作,但也導致大多關聯規則的研究過于粗淺,僅僅是簡單的一對一關聯規則分析,而對于多維和多級關聯規則分析等更高級的方法在中醫藥數據挖掘的應用還不夠。
盡管關聯規則在中醫數據挖掘應用上仍存在一些問題,但依然對中醫藥的發展起到了不可忽視的作用,存在著廣闊的應用前景。關聯規則、網絡模型可視化可以應用到更多領域,如結合網絡藥理學揭示中藥作用于疾病靶點的具體機制,進一步提高中醫藥對疾病的診療水平,從而推動中醫藥事業現代化的進程。