朱艷麗,李士勇
(河南科技學院,河南新鄉(xiāng)453003)
中國醫(yī)學(Traditional Chinese Medicine,TCM)源遠流長,對中華民族的繁榮昌盛做了重要貢獻.中藥復方也稱方劑,在中醫(yī)藥科學中扮演著重要的角色,是中醫(yī)基礎理論與臨床的紐帶[1].在方劑中,“方、藥、證”之間存在著錯綜復雜的對應關系,幾千年來積累的十余萬首中藥方劑,是我國醫(yī)藥界最寶貴的資源和財富.方劑數據經過中醫(yī)學界及相關領域廣大工作者的不懈努力,規(guī)范整理形成了中國方劑數據庫.復方數量達十幾萬首,其中中醫(yī)古方劑庫就包含了8萬方劑,為研究方劑配伍規(guī)律打下了堅實的基礎[2].
數據挖掘(Data Mining)是為解決“數據豐富,知識貧乏”狀況而興起的邊緣學科之一,是從海量數據中獲取知識的可靠技術.數據挖掘作為人工智能與數據庫交叉融合的高級信息處理技術,可以反映多維數據之間的相互映射關系,為現代方劑的研究提供了非常有力的研究工具[3].關聯規(guī)則是目前應用于方劑研究最經典的一種方法[4],姚美村等應用關聯規(guī)則分析技術,在單味藥層次上進行消渴病復方組成藥味之間的關聯模式研究[5].得到了藥物與上中下三消的關聯以及藥物之間的關聯,與中醫(yī)專家對于消渴病的治療在主要藥物的配伍方面基本一致,這在一定程度上反映出歷代中醫(yī)在消渴病治療方面認識和治療的整體規(guī)律性.陳波、蔣永光等應用關聯規(guī)則對脾胃方從藥物間關聯、癥狀間關聯、處方結構與癥狀關聯進行分析,并就脾胃方的核心藥物、方劑結構、藥對、藥組和“方、藥、證”的對應關聯方面形成了有關技術規(guī)則和處理程序[6-8].綜上所述,關聯規(guī)則在方劑數據挖掘研究的應用中,優(yōu)勢體現在提取核心藥物及揭示配伍關系.因此,本文通過使用關聯規(guī)則挖掘研究成果以及相關技術對中醫(yī)方劑庫數據進行智能分析,深化對中醫(yī)病癥與復方配伍的本質規(guī)律認識,為合理配伍提供理論支持.
數據預處理的任務就是以領域知識為指導,用全新的“業(yè)務模型”來組織原有業(yè)務數據,清除與挖掘目標無關的屬性,提供干凈、準確、精簡的數據,以提高挖掘的質量和效率[9].在數據挖掘過程中數據預處理至關重要.根據統計,在一個完整的數據挖掘過程中,數據預處理要花費60%左右的時間.
中醫(yī)各家各派眾多,不同學派和醫(yī)家基于不同的臨床實踐和理論認識,產生了各種不盡相同的學術思想和觀點.加之中醫(yī)學理論形成的特殊文化背景和哲學體系,導致了其診療理論和行為的多元化和經驗性.因此,歷經幾千年歷史的中醫(yī)藥雖然累積了大量的文獻資料,但由于其所含的知識信息大多屬于醫(yī)藥實踐的原始記錄,缺乏系統的整理和研究,其理論表述中術語的使用和概念的表達等方面規(guī)范化和標準化程度較低,不能直接進行數據挖掘[3].為研究古代方劑配伍規(guī)律,首先需要做的就是對方劑庫數據進行預處理,降低噪聲.本文主要通過數據集成、數據清洗和數據轉換等方法對包含有噪聲、不完整、甚至是不一致的中藥方劑數據信息進行預處理,以提高數據挖掘對象的質量.
對方劑信息進行預處理后,得到用于挖掘的方劑數據庫,采用Apriori算法挖掘方劑庫中存在的藥對規(guī)律.該算法易于實現,但在實際中存在對數據庫的掃描次數過于頻繁的缺陷.為提高算法的效率,避免反復掃描方劑數據庫,我們在使用關聯規(guī)則算法進行挖掘前,先為方劑數據庫建立一個位圖矩陣,然后使用Apriori算法在位圖矩陣上進行挖掘操作.建立位圖矩陣的代碼如下:
ResultSet rsName=stmt.executeQuery(queryName);i=0;
while(rsName.next()){
if(i<405)
drugName[i]=rsName.getString(" 藥名 ");
i++;}
ResultSet rsId=stmt.executeQuery(queryId);i=0;
while(rsId.next()){
fangjiId[i++]=rsId.getString("方劑編號 ");}
for(int i=0;i<1060;i++)
{for(int j=0;j<405;j++)
matrix[i][j]='0';}
for(int i=0;i<1060;i++)
{String queryName1="select藥名 from藥物表 where"方劑編號="+fangjiId[i]+"group by藥名order by藥名";
ResultSet rsName1=stmt.executeQuery(queryName1);i=0;
while(rsName1.next()){
temp[i]=rsName1.getString("藥名 ");i++;}
for(int k=0;k<l060;k++)
{
for(int j=0;j<405;j++)
if(temp[k].equals(drugName[j]))
matrix[i][j]='1';
temp[k]="";
}
rsName1.close();
通過以上代碼能建立方劑庫的位圖矩陣.該位圖矩陣中,每一行代表一種方劑,每一列代表一種藥.當一種方劑中含有這種藥物時,其位圖矩陣的對應位的值為1,否則為0.在實驗過程中,為得到多組實驗數據,我們需要反復調整最小支持度閾值和最小置信度閾值,但位圖矩陣只需在進行第一組實驗時建立一次.
關聯規(guī)則挖掘主要是基于頻繁項目集發(fā)現上的,而Agrawal和Srikant提出的Apriori算法是一種最有影響的挖掘布爾關聯規(guī)則頻繁項集的算法[10].利用層次順序搜索的循環(huán)方法來完成頻繁項集的挖掘工作.首先找出頻繁1-項集,記為L1;然后利用L1來挖掘L2,即頻繁2-項集;不斷如此循環(huán)下去直到無法發(fā)現更多的頻繁k-項集為止.為提高產生相應頻繁項集的效率,利用Apriori性質來幫助有效縮小頻繁項集的搜索空間,通過連接和剪枝兩步過程來實現頻繁項集的挖掘.本文使用Apriori算法進行關聯規(guī)則挖掘,具體過程如下:
(1)輸入方劑庫D,設置最小支持度minsup和最小置信度minconf的值;
(2)掃描方劑庫D,求出1-候選集,即C1;
(3)假設k為當前迭代次數,Lk-1為上一次迭代產生的頻繁集,循環(huán)迭代以下步驟直到Lk-1為空;
(4)從Lk-1中得出包含Lk的侯選集Ck,首先對Lk-1中所有前k-2個項目相同的項目集作連接操作,即Lk-1∞Lk-1={A∞B|A,B∈Lk-1,|A∩B|=k-2},再根據Apriori性質從該集合中刪除其子集在Lk-1未出現的k階項目集,得到Ck;
(5)從Ck中刪去支持度小于最小支持度的頻繁集,得到Lk,回到步驟(3);
(6)輸出所有找到的頻繁項集;
(7)以(6)中頻繁項集為基礎,對每一個頻繁項集生成置信度大于最小置信度的關聯規(guī)則.
假設最小支持度閾值=5%,最小置信度閾值=55%,方劑庫總共有1 046條記錄,關聯分析實驗結果見表1和表2,其中表1為二項頻集及關聯分析實驗結果,表2為三項頻集及關聯分析實驗結果.表中數據包含關聯規(guī)則的編號、頻繁集、關聯規(guī)則以及置信度.
表1 二項頻集及關聯規(guī)則實驗結果
表2 三項頻集及關聯規(guī)則實驗結果
表1中規(guī)則1表示生姜=>大棗為找到的關聯規(guī)則,它們的置信度為86%.又如人參=>白術+當歸,表示在頻繁3項集中{人參,白術,當歸},人參存在的情況下白術和當歸同時出現的概率為75%.
中醫(yī)臨癥既要辨證準確,還要用藥精當,做到理、法、方、藥的和諧統一,才能收到滿意療效.所以,正確掌握和運用中藥是一個很重要的關鍵.而那些出于經方或時方的“藥對”是方劑結構的重要組成部分,我們找到的規(guī)則是否為真正意義上的藥對還需要使用中醫(yī)理論進行論證.如表1中規(guī)則3找到的白術和茯苓藥隊,在實際中醫(yī)應用中,白術和茯苓組成茯苓湯主治脾虛不運,痰飲內停,水濕為患之癥,證明白術和茯苓是真正意義的藥對.
為減少挖掘所用時間,采用位圖矩陣對方劑庫進行數字化,并將該系統與成都中醫(yī)藥大學和西南交通大學開發(fā)的中藥復分析系統TCDMiner在挖掘藥對方面進行比較.系統測試在同一臺計算機上,所用的方劑庫同為脾胃方庫,支持度調整5次,記錄每次挖掘頻繁二項集在不同的支持度下所用時間.實驗結果如表3示,表中的minsup表示最小支持度.
表3 系統實驗數據對照 t/s
實驗結果表明使用本文中的關聯規(guī)則挖掘方法速度更快.
數據挖掘幫助人們從大量的數據信息中發(fā)現隱含的知識、規(guī)律和行為模式,對人們的決策和行為進行指導.中醫(yī)藥學是中華民族的文化瑰寶,幾千年來積累了大量的中藥復方.本文首先采用數據集成、數據清洗和數據轉換等方法對中藥方劑庫進行預處理,并建立位圖矩陣,然后使用Apriori算法對位圖矩陣進行關聯規(guī)則挖掘,挖掘出關于藥對的有價值的信息規(guī)律,對于促進中醫(yī)藥學的發(fā)展和中藥新藥的研制開發(fā)產生了積極的影響.實驗結果表明應用數據挖掘研究中藥藥對相互關系具有可行性,且有進一步研究的價值和應用前景.
[1]陸偉,王雁峰,吳朝暉.中藥復方組成規(guī)律的關聯規(guī)則發(fā)現系統[J].浙江大學學報:工學版,2001,35(4):370-373,407.
[2]王春山.數據挖掘技術在方劑配伍領域的應用研究[D].杭州:浙江大學,2006.
[3]李力.數據挖掘方法研究及其在中藥復方配伍分析中的應用[D].成都:西南交通大學,2003:1-150.
[4]葉亮,范欣生,王崇駿,等.方劑數據挖掘研究常用方法探討[J].醫(yī)學信息,2008,21(10):1734-1737.
[5]姚美村,艾路,袁月梅,等.消渴病復方配伍規(guī)律的關聯規(guī)則分析[J].北京中醫(yī)藥大學學報,2002,25(6):48-50.
[6]陳波,蔣永光,胡波,等.東垣脾胃方配伍規(guī)律之關聯分析評述[J].中醫(yī)藥學刊,2004,22(4):611-615.
[7]蔣永光,胡波,劉娟,等.方劑配伍的數據挖掘可行性探索[J].四川中醫(yī),2004,22(8):25-28.
[8]蔣永光,李力,李認書,等.中醫(yī)脾胃方配伍規(guī)律的數據挖掘試驗[J].世界科學技術-中藥現代化,2003,5(3):33-37.
[9]菅志剛,金旭.數據挖掘中數據預處理的研究與實現[J].計算機應用研究,2004(7):117-118,157.
[10]Srikant R,Agrawal R.Mining quantitative association rules in large relational tables[J].Proceedings ofACM SIGMOD International conference on Management ofData,1996,25(2):1-12.