歐鳳霞, 王宗殿
(1.合肥工業(yè)大學(xué) 計算機與信息學(xué)院,安徽 合肥 230009;2.安徽中醫(yī)學(xué)院 醫(yī)藥信息工程學(xué)院,安徽 合肥 230038)
中醫(yī)是中國的傳統(tǒng)醫(yī)學(xué),幾千年來為中華民族的繁衍做出了重要貢獻,但現(xiàn)代中醫(yī)的發(fā)展也面臨著諸多挑戰(zhàn).中醫(yī)學(xué)說在理論和臨床上自成體系,一病多治,重復(fù)性較差,這給中醫(yī)治療的應(yīng)用、傳承和發(fā)展造成了很大困難.燦爛悠久的中醫(yī)文化薈萃了眾多中醫(yī)名家的學(xué)術(shù)和臨床醫(yī)學(xué)資源,利用現(xiàn)代數(shù)據(jù)挖掘技術(shù)探討中醫(yī)診斷與治療的規(guī)律,對推動中醫(yī)文化的學(xué)術(shù)研究和現(xiàn)代中醫(yī)的發(fā)展有重要作用.
數(shù)據(jù)挖掘是從數(shù)據(jù)庫或數(shù)據(jù)倉庫中發(fā)現(xiàn)隱藏的、未知的和有用的信息的過程.近年來,從不斷膨脹的醫(yī)院數(shù)據(jù)庫提取有用信息為疾病的診斷和治療提供科學(xué)的決策,已成為人們關(guān)注的焦點.本研究的基本思路是在收集眾多治療典型病例的醫(yī)案的基礎(chǔ)上,從不完整甚至不一致的數(shù)據(jù)中,利用數(shù)據(jù)挖掘技術(shù),挖掘出典型病例的用藥規(guī)律.
中醫(yī)診斷主要依靠望、聞、問、切四診收集脈象、舌像、神色形態(tài)、癥狀等的機體反應(yīng)來診察疾病,“辨證論治”是中醫(yī)的基本特征之一[1].在中醫(yī)的臨床診療過程中,患者所表現(xiàn)的各種癥狀和體征,是辨證的依據(jù),稱為“證候”;通過對證候的辨識而確定的病理本質(zhì),稱為“證素”;由病位、病性證素所構(gòu)成的診斷名稱,稱為“證名”.證候、證素和證名,共同組成了“證素辨證體系”[2].證素辨證研究的核心問題是證素的確認,即通過臨床收集到的信息尋找構(gòu)成證的基本元素.如果一組癥狀群呈現(xiàn)穩(wěn)定的相互關(guān)系,就可以確定病位與病性的最小單位.準(zhǔn)確地判斷證素,便抓住了疾病當(dāng)前的病理本質(zhì).
臨床上收集的四診資料存在不完整性、含噪聲和不一致性等特點,不能直接用于數(shù)據(jù)挖掘.在進行數(shù)據(jù)挖掘之前,必須對中醫(yī)臨床上的數(shù)據(jù)進行規(guī)范化的預(yù)處理,圖1是中醫(yī)臨床數(shù)據(jù)規(guī)范化預(yù)處理的流程圖.
數(shù)據(jù)挖掘的方法有關(guān)聯(lián)規(guī)則、序列模式、神經(jīng)網(wǎng)絡(luò)、分類規(guī)則和聚類分析等,采用不同的技術(shù)可以發(fā)現(xiàn)不同類型的知識.本文主要介紹關(guān)聯(lián)規(guī)則技術(shù)在肝病中醫(yī)診斷上的應(yīng)用,找出肝病的癥狀與處方、癥狀與辨證、辨證與處方之間的關(guān)聯(lián)規(guī)則.
圖1 病歷數(shù)據(jù)預(yù)處理流程Fig.1 Medical record data pretreatment flowchart
設(shè)D是事務(wù)數(shù)據(jù)庫,I=(i1,i2,…,im)是所有項目的集合,其中Ij,j=1,…,m是一個項目.每個事務(wù)Ti是一個項集,Ti?I.
定義1 設(shè)A,B為項集,則稱A→B為規(guī)則,其中A?I,B?I,且A∩B=φ.
定義2 設(shè)D是事務(wù)集,A,B為項集,且有規(guī)則A→B.如果D中包含A∪B事務(wù)的比例為s%,稱A→B有支持度s%,即概率P(A∪B).
定義3 設(shè)D是事務(wù)集,A,B為項集,且有規(guī)則A→B.若D中,c%的事務(wù)包含A的同時也包含B,則稱A→B有置信度,即條件概率P(B|A).
定義4 設(shè)D是事務(wù)集,A,B為項集,若A→B滿足最小置信度c和最小支持度s,則稱A→B為關(guān)聯(lián)規(guī)則.
Support(A→B)=P(A∪B)
Confidence(A→B)=P(B|A)
關(guān)聯(lián)規(guī)則的挖掘過程主要包含2個階段:第一階段必須先從原始資料集合中找出所有的高頻項目組(Frequent Itemsets),第二階段再由這些高頻項目組中產(chǎn)生關(guān)聯(lián)規(guī)則(Association Rules).
本文的數(shù)據(jù)來源為臨床和文獻[6],共1 128例肝病病例.這里所采用的每個病例數(shù)據(jù)都包含了癥狀、辨證、治法和處方等若干方面的信息,部分數(shù)據(jù)如下:
(1)某女,20歲
癥狀:納差,惡心,厭油,口不苦,微渴喜熱飲,乏力,大便色黃,日行1~2次,尿黃而自利,皮膚瘙癢,有搔抓痕;舌質(zhì)暗,苔薄黃,舌下脈絡(luò)增粗延長,脈弦細.
辨證:濕熱血虛型.
治法:清熱利濕活血.
處方:茵陳15 g,丹參15 g,丹皮15 g,杏仁15 g,赤芍60 g,葛根30 g,瓜蔞30 g,生大黃9 g,半夏15 g,川芎15 g,梔子12 g,黃苓15 g.
(2)某男,32歲
癥狀: 頻繁惡心,但無嘔吐;胸悶明顯,胸脘脹滿,納差,口黏;大便不爽,小便色黃不利,胃脘部有振水聲;舌質(zhì)紅,苔薄黃,脈弦.
辨證: 濕邪彌散三焦(黃疸).
治法:宣暢三焦.
處方:杏仁15 g,蔻仁15 g,生薏苡仁30 g,黃芩15 g,赤芍90 g,葛根30 g,滑石30 g,茵陳15 g,半夏15 g,川樸15 g,木通15 g.
…………
從以上原始病例可以看出,癥狀、辨證、治法和處方都是一些中醫(yī)習(xí)慣用語,沒有一個統(tǒng)一的標(biāo)準(zhǔn).因此,在進行研究之前,必須編制一些程序?qū)@些病歷中的癥狀術(shù)語、癥狀之間的邏輯關(guān)系、辨證、治法和方藥等做規(guī)范預(yù)處理.通過相關(guān)中醫(yī)書籍對所有的癥狀作了統(tǒng)計和歸類,得到了用于挖掘?qū)嶒灥陌Y狀描述,把每個癥狀用數(shù)字來表示.例如:1001代表納差,1002代表惡心……1025代表脈弦,1026代表肝掌……
辨證論治是中醫(yī)認識疾病和治療疾病的基本原則.辨證是決定治療的前提和依據(jù),論治是治療疾病的手段和方法.為了便于挖掘,把每種辨證也用數(shù)字來表示.例如: 2001代表濕熱血瘀型,2002代表血瘀血熱型……2030代表營衛(wèi)不和證,2031代表脾虛血瘀證……
藥名的預(yù)處理相對比較簡單,可以根據(jù)中藥庫的國家標(biāo)準(zhǔn)命名來對藥名進行預(yù)處理.例如:3001代表萊菔子,3002代表姜半夏……3079代表茵陳,3080代表桂枝……
經(jīng)過預(yù)處理的病例數(shù)據(jù)主要是用數(shù)字來表示的,并且包含了癥狀、辨證、治法、處方這四維數(shù)據(jù).
表1 病人基本的數(shù)據(jù)格式Tab.1 Patient basic data formats
根據(jù)表1所示的數(shù)據(jù)格式和內(nèi)容,這里需要挖掘癥狀與辨證、癥狀與處方、辨證與處方的制約關(guān)系的數(shù)據(jù),即:
(1)基本癥狀和辨證之間的關(guān)聯(lián)規(guī)則:基本癥狀(x,Ai)→辨證(x,Bj);
(2)基本癥狀和處方之間的關(guān)聯(lián)規(guī)則:基本癥狀(x,Ai)→處方(x,Dj);
(3)辨證和處方之間的關(guān)聯(lián)規(guī)則:辨證(x,Bj)→處方(X,Dj).
這是一個二維關(guān)聯(lián)規(guī)則挖掘模型,如果要得到癥狀與辨證、癥狀與處方、辨證與處方之間的關(guān)聯(lián)規(guī)則,可以將模型降為一維,再運用關(guān)聯(lián)規(guī)則算法來挖掘這一維新的數(shù)據(jù),篩選挖掘結(jié)果,去掉不符合規(guī)則的,留下合適的規(guī)則,從而挖掘出癥狀與辨證、癥狀與處方、辨證與處方之間的關(guān)聯(lián)規(guī)則.
表2 病人的事務(wù)數(shù)據(jù)庫Tab.2 Patients transaction database
本文采用頻繁模式增長(frequent-Pattern growth)的關(guān)聯(lián)算法,簡稱FP-增長.將提供頻繁項集的數(shù)據(jù)庫壓縮成一棵頻繁模式樹(FP-tree),保留項集關(guān)聯(lián)信息;然后,將這種壓縮后的數(shù)據(jù)庫分成一組條件數(shù)據(jù)庫,每個數(shù)據(jù)庫關(guān)聯(lián)一個頻繁項,并分別挖掘每個數(shù)據(jù)庫.
下面給出一個簡單的例子說明基本的挖掘過程.表2是需要挖掘的事務(wù)數(shù)據(jù)庫.
假設(shè)現(xiàn)在要挖掘基本癥狀和處方之間的關(guān)聯(lián)規(guī)則,即基本癥狀(x,Ai) →處方(x,Dj),則需要將“基本癥狀”和“處方”這2項數(shù)據(jù)合并為一個新的維,設(shè)為x,合并后的病人數(shù)據(jù)如表3所示.
表3 合并后的病人數(shù)據(jù)Tab.3 Data after the merger of patient
圖2 FP-樹挖掘結(jié)果Fig.2 FP-trees mining results
取最小支持度為2、最小置信度為60%,運用關(guān)聯(lián)規(guī)則得到的挖掘結(jié)果見圖2.具體步驟如下:
(1) 掃描合并后的病人事務(wù)數(shù)據(jù)庫,收集頻繁項集和它們的支持度.按支持度降序排序,得到頻繁項表L=[3∶3,2∶3,5∶3,1∶2,4∶1].
(2)創(chuàng)建FP-樹.事務(wù)數(shù)據(jù)庫中的第一條事務(wù){(diào)1,3,4},按照L中的排序為{3,1,4},則先建立null結(jié)點,然后依次有結(jié)點3、1、4,并把計數(shù)都置為l;第二條事務(wù){(diào)2,3,5},按照L中的排序為{3,2,5},則把“3”結(jié)點的計數(shù)增加到2,在“3”分支下建立結(jié)點2和5;其余依次類推,就可以得到圖2所示的FP-tree.
然后,對這個FP-tree進行挖掘,對L中的項進行倒序考慮:
(1)先考慮“4”,它的路徑由分支<3,1,4∶1>形成,考慮“4”為后綴,它的對應(yīng)前綴路徑是<3,1>,但支持記數(shù)為1,小于設(shè)定的min-sup(2),所以該路徑不能產(chǎn)生頻繁模式.
(2)再考慮“1”,它的路徑由分支<3,2,5,1∶1>和<3,1∶1>形成,考慮“l(fā)”為后綴,并考慮最小支持度為2,則這2個路徑均不能產(chǎn)生頻繁模式.
(3)再考慮“5”,它的路徑由分支<3,2,5∶2>和<2,5∶l>形成,考慮“5”為后綴,并考慮最小支持度為2,則它的對應(yīng)前綴路徑只能是<3,2∶2>,則該路徑產(chǎn)生的頻繁模式為<3,2,5∶2>.
(4)再考慮“2”,它的路徑由分支<3,2∶2>形成,考慮“2”為后綴,并考慮最小支持度為2,則它的對應(yīng)前綴路徑是<3,2>,則該路徑產(chǎn)生的頻繁模式為<3,2∶2>.
表4 關(guān)聯(lián)規(guī)則及其置信度Tab.4 Association rules and confidence
挖掘過程到此結(jié)束,發(fā)現(xiàn)頻繁模式<3,2,5∶2>和<3,2∶2>,但2和3表示基本癥狀,5表示處方,則上述的2個頻繁模式只有<3,2,5∶2>符合要求,即挖掘基本癥狀和處方之間的關(guān)聯(lián)規(guī)則.因此,這個例子能得到一個頻繁集{2,3,5},非空真子集有{2},{3},{5},{2,3},{2,5},{3,5},從而得到的關(guān)聯(lián)規(guī)則及其置信度見表4.
本例中1、2、3表示基本癥狀,4、5表示藥名,需要對上面的規(guī)則進行篩選,保留含有這兩維數(shù)據(jù)并且是由基本癥狀推出藥名或由藥名推出基本癥狀的規(guī)則,最后得到2個規(guī)則見表5.
表5 篩選后得到的關(guān)聯(lián)規(guī)則及其置信度Tab.5 Association rules and confidence after filtering
表5中“5→2∧3”表示5這種藥有66%的可能性是用來治療2,3這2種病狀的;“2∧3→5”則表示2和3這2種病狀通常是用5這種藥來治的.
這就是該模型的基本思想,其他幾維數(shù)據(jù)間的關(guān)聯(lián)規(guī)則也可以類似挖掘.
3.2.1 基本癥狀和處方的關(guān)聯(lián)規(guī)則
挖掘基本癥狀和處方之間的關(guān)聯(lián)規(guī)則,就是想得知哪些基本癥狀的組合一般是由哪些藥的組合來治療的.取最小支持度頻數(shù)為5、最小置信度為80%,得到表6中的一系列結(jié)果.
表6 基本癥狀和處方Tab.6 Basic symptoms and the prescription
從(1004,1006,1050,1002)→3079規(guī)則的置信度是100%,表明“皮膚黃”、“舌苔黃膩”、“尿黃”、“惡心”這4種癥狀同時出現(xiàn)的時候,必須要用茵陳這種藥.查閱中醫(yī)藥知識可以知道,黃疸就有“皮膚黃”、“舌苔黃膩”、“小便黃”、“惡心”這4種癥狀.黃疸是由于血清中的膽紅素升高所致,茵陳具有明顯的保肝利膽的作用,能夠促進膽汁分泌,促進膽酸和膽紅素排出,這說明這個關(guān)聯(lián)規(guī)則是符合中醫(yī)傳統(tǒng)知識的.
表7 辨證和基本癥狀Tab.7 Differentiation and basic symptoms
3.2.2 基本癥狀和辨證之間的關(guān)聯(lián)規(guī)則
挖掘基本癥狀和辨證之間的關(guān)聯(lián)規(guī)則,就是想知道哪些癥狀的組合是何種辨證.取最小支持度頻數(shù)為3、最小置信度為60%,得到的結(jié)果見表7.
從2018→(1001,1007,1049,1002),這條規(guī)則的置信度是100%,表示“脾虛濕困”這個辨證一般會有“納差”、“舌苔膩”、“大便溏瀉”、“惡心”這4種癥狀.中醫(yī)認為脾主運化水濕,脾虛則運化功能低下,引起水濕停滯;水濕的停滯,反過來又影響脾的運化,故飲食減少、胃脘滿悶、大便溏瀉,舌苔厚膩等.由此可見,這個關(guān)聯(lián)規(guī)則是符合中醫(yī)傳統(tǒng)知識的.
3.2.3 辨證和處方之間的關(guān)聯(lián)規(guī)則
挖掘中醫(yī)中辨證和處方之間的關(guān)聯(lián)規(guī)則可以得到對病因的用藥方法.取最小支持度頻數(shù)為5、最小置信度為80%,得到的結(jié)果見表8.
表8 辨證和處方Tab.8 Differentiation and prescription
關(guān)聯(lián)規(guī)則(3078,3087,3098,3013,3012)→2010的置信度為100%,表示白芍、橘皮、茯苓、木香和川楝子的組合可以用來治療“脾氣虛證”.根據(jù)傳統(tǒng)的中醫(yī)療法,脾氣虛證要用溫中健脾的方劑來治療,一般選用香砂六君子湯和黃芪建中湯加減.前方中,黨參、茯苓、白術(shù)、炙甘草為四君子湯健脾,橘皮、木香、砂仁和胃降逆;后方中,黃芪益氣補中,白芍、桂枝、炙甘草、生姜、大棗、怡糖為小建中湯.由上面的傳統(tǒng)經(jīng)典用藥可以知道,該規(guī)則的前4種藥都是治療脾氣虛證的必要中藥,但是川楝子卻不是經(jīng)典的治療脾氣虛證的藥.查閱中醫(yī)藥的書籍可知,川楝子是一種行氣止痛、行氣疏肝的中藥,一般可以用于治療胃脘痛和脅痛.但是,它也可以治療胃脘部飽脹、滿悶不舒的癥狀,而胃脘部飽脹又是脾氣虛證的一個非常重要的特征.因此,對中醫(yī)的用藥挖掘是非常正確和有意義的.
正確的診斷對于確立治療原則、指導(dǎo)用藥以及調(diào)理康復(fù)無疑是非常重要的,用關(guān)聯(lián)規(guī)則挖掘出的“理—法—方—藥”之間的關(guān)聯(lián)規(guī)則是中國中醫(yī)藥學(xué)的寶貴經(jīng)驗,它促進了中醫(yī)診斷學(xué)的規(guī)范化研究,也為中醫(yī)的現(xiàn)代化注入了新的活力.
參考文獻:
[1] 朱文峰.中醫(yī)診斷學(xué)[M].北京:中國中醫(yī)藥出版社,2000.
[2] 朱文鋒.證素辨證學(xué)[M].北京:人民衛(wèi)生出版社,2008.
[3] Jiawei H, Micheline K. Data Mining: Concepts and Techniques[M]. San Fransisco:Morgan Kaufman Puclishers, 2001.
[4] 謝邦昌.數(shù)據(jù)挖掘Clementine應(yīng)用實務(wù)[M].北京:機械工業(yè)出版社,2008.
[5] 薛飛飛,陳家旭.數(shù)據(jù)挖掘在中醫(yī)診斷學(xué)中的應(yīng)用[J].中醫(yī)雜志,2009,50(3):200-202.
[6] 中國中醫(yī)藥管理局中醫(yī)肝病重點??茀f(xié)作組.中醫(yī)肝病病案例選[M].上海:上海科技教育出版社,2006.