董 輝
(1.合肥工業大學,安徽 合肥 230001;2.亳州職業技術學院,安徽 亳州 236800)
基于改進FP_Growth算法的中藥方劑配伍規律挖掘研究
董 輝1,2
(1.合肥工業大學,安徽 合肥 230001;2.亳州職業技術學院,安徽 亳州 236800)
中藥方劑即中藥復方,在中醫藥科學中占有舉足輕重的地位,我國已積累中藥方劑達十余萬首,而如何利用這一巨大的方劑庫,開發研制新的安全有效地方劑,是一亟待解決的問題.數據挖掘技術的出現及利用這一技術對中藥方劑配伍規律進行發掘,既能大力推動了我國中醫信息化建設,又可快速發現隱含在方劑庫中的重要的知識,也能為中醫學走向世界提供強有力的技術支持,因此對中藥方劑進行數據挖掘不僅是有必要的,更具有實際意義.
數據挖掘;關聯規則;中藥方劑;FP-Growth算法
中醫藥學經數千年發展與實踐,已形成完整的醫療體系,作為中醫藥科學核心部分的中藥方劑有十多萬首,是我國中醫藥實踐經驗和智慧的結晶,載錄了中藥組方用藥的原理、規則和經驗技巧,也包含已知和未知的方劑配伍規律,另外中藥方劑的本質特征如整體性、辯證性、動態性等過于抽象,有時也定量和具體的把握,所有這些都需我們繼續研究探索.數據挖掘技術的發展與成熟,為我們研究中藥方劑配伍規律等方面提供強大的技術支持,發揮日益重要的作用.關聯規則挖掘是數據挖掘非常重要一種類型,FP-Growth算法是實現關聯規則挖掘經典算法,本文在分析此算法的基礎上,提出FP-Growth是法改進,并用這一算法對中藥方劑配伍規律進行分析挖掘,希望為我國中醫藥發展和方劑應用提供一定參考.
數據挖掘是近30年來逐步發展起來的一個新的研究領域,是多學科和技術相結合的產物,被廣泛的應用于政府決策、企業經營、科學探討和醫學研究等各個領域,為促進社會各方面的發展發揮重要的作用.關聯規則挖掘作為數據挖掘的眾多知識類型中最為典型的一種,在醫學領域有著廣泛的應用.
關聯規則用于表示OLTP數據庫中諸多屬性(項集)之間的關聯程度,是利用數據庫中的大量數據通過關聯算法尋找屬性間的相關性.關聯規則挖掘的問題描述如下:
設 I={I1,I2,…,Im}是數據項的集合,D={T1,T2,…,Tn}是一個事務數據庫,其中每個事務T是數據項集I的子集即TI,每個事務T有一個標識符TID與之相關.如果I的一個子集X滿足XT,則稱事務T包含項目集X.一個關聯規則就是形如 X=>Y的蘊涵式,XI、YI、X∩Y=Φ.其意義在于一個事務中某些項的出現,可推導出另一些項在同一事務中也出現,此處,“=>”稱為“關聯”操作,X稱為關聯規則的先決條件,Y稱為關聯規則的結果.例如:中藥方劑配伍中,使用中藥A的的方劑,必然有90%以上會同時使用中藥B,則可用關聯規則R表示為:R:A=>B.支持度(Support)和置信度(Confidence)是關聯規則中重要的概念,支持度(Support)是形如在方劑中同時使用中藥A和中藥B的方劑數占總方劑數的百分比;而置信度(Confidence)是形如同時所有中藥A和B的方劑數占使用中藥A的方劑數的百分比稱為規則的置信度.前者用于衡量關聯規則在整個數據集中的統計重要性,后者用于衡量關聯規則的可信程度,他們的公式分別式(1)和式(2):

在實際應用中,支持度和置信度均較高的關聯才可作為有用的關聯規則,稱之為最小支持度閾值(min_sup)和最小置信度閾值(min_conf),min_sup表示數據項在統計意義下的最低重要性,只有滿足min_sup的數據項集才在關聯規則中出現,稱之為頻繁項集;最小置信度則表示關聯規則的最低可靠度.滿足大于min_sup和min_conf的規則稱為強規則,關聯規則挖掘的任務就是發現所有頻繁項集,挖掘出事務數據庫D中所有的強規則.
FP-Growth算法是韓家瑋等人提出的基于FP-Tree增長樹的著名算法,該算法在不產生候選集的情況下,提供了良好的頻繁模式挖掘過程,性能比Apriori算法有所提高.但FP-Growth算法隨著遞歸調用的深入,產生的條件FP-Tree越來越多,特別是在有共享前綴的情況下,FP-Growth算法非常耗時,為了解決這一問題,本文提出對FP-Growth算法的改進,命為FP-growth*算法.
FP-Growth*算法的思想是:減少搜索共享前綴的時間達到減少生成FP-Tree的時間,以提高了挖掘效率,即在存在共享前綴的條件下,遍歷節點的第一個子女節點就發現共享前綴.其挖掘步驟如下:
(1)頻繁1-項集排序:描事務數據庫D一次,生成頻繁1-項集及每個頻繁項集的支持度,按支持度降序排序,結果為L;
(2)事務項重排序:按照頻繁項表L的次序對事務數據庫項排序,生成事務數據庫D1;
(3)事務集再排序:按照L的次序對D1的整個數據集再排序,即先對事務集的首列按L的次序排序,之后在此基礎上對事務集的次列再按L的次序排序,依次類推到數據集的終列得到排序數據集D2;
(4)構造FP-Tree條件:創建以“null”為標記的根節點,掃描D2,對其中每個事務調用insert_tree(P,T)過程,生成FP-Tree.
(5)挖掘FP-Tree:遞歸調用FP-Growth算法,挖掘FP-Tree,得到頻繁項集.
在相同的計算機軟硬件系統中,隨著數據集數目的增加,改進后的算法生成FP-Tree時間明顯的減少,效率較高.根據實驗分析,當數據集數目較大時,采用FP-growth*算法挖掘效率提高20%左右,如圖1所示:

圖1 FP-growth*與FP-Growth算法生成FP-tree比較
當前,回歸自然健康生活是一種潮流,中醫藥作為天然藥物的典型代表,具有廣闊的發展前景.經過幾千年的發展,中藥方劑達數十余萬首,信息量巨大,利用價值極高,早期由于缺乏科學的信息處理技術,對這一資源難以進行系統深入地研究開發,致使很多方劑長期處于沉睡狀態.近年來,由于數據庫技術的發展,一些科研機構和高校建成若干中醫藥相關中大型數據庫,初步滿足了中醫藥界文獻檢索的需要,也為建立中藥方劑數據挖掘系統提供龐大的數據支持:如國家中醫藥管理局的“中國中醫藥信息網”,建成“中藥基礎數據庫”、“現代方劑數據庫”等一批中醫藥信息庫,為國內外用戶提供全面、方便、快捷的信息查詢服務.此外其他科研機構及高校也研制出數十種中藥方劑的相關數據庫或電子型工具:如中國中醫藥信息研究所的“中醫藥數據庫檢索系統”、北京中醫藥大學的“中藥方劑數據庫”、上海市中醫中藥數據中心“中醫方劑數據庫”等.
中醫藥數據挖掘領域,已有不少專家學者對中醫方劑從不同的角度進行研究,取得不菲的成就.其中北京中醫藥大學喬延江教授帶領團隊在中藥數據挖掘多個領域研究和探討,在中藥方劑配伍規律、中藥方劑再優化研究、中藥新劑型研究等諸多方面都做出了大量的貢獻;浙江大學以吳朝暉教授為首的CCNT實驗室,展開中醫藥數據挖掘的深入研究,重點是探索藥物高頻組配和中藥聚類的問題,并完成了中醫藥數字化的基礎設施的建設,同時與多所高校聯合搭建了中醫藥科技數據庫群和具有17個分中心的分布式數據庫綜合訪問平臺;其他更多的科技工作者,也在做中醫藥數據挖掘方面的探討.我們有理由相信,隨著技術的進步,中醫藥數據挖掘方面將會取得更多的研究成果,推動中醫藥領域信息化水平上升到一個新的臺階.
面對十多萬首中藥方劑,本文選擇脾胃方劑作為關聯挖掘數據的來源,文中所有方劑均來自華佗中醫院臨床方劑和上海市中醫中藥數據中心《中醫方劑數據庫》.作為神醫華佗的故里,亳州自古就有“小黃城外芍藥花,十里五里生朝霞”之美譽,是聞名于世的中藥材種植和加工集散地,被收錄到《藥典》地產藥材就有毫芍、毫菊、毫桑皮和毫花粉,如今亳州藥材品種已發展到數百種,種植面積達100萬畝,被譽為“中華藥都”,大量的中醫藥資源為中藥方劑的發展提供了天然條件,華佗中醫院擁有大量的臨床方劑;上海中醫中藥數據中心的“中醫方劑數據庫”收錄了中藥處方達19萬個,摘錄了文獻中包含的方劑,數據項包括了方劑名、組成、劑量、主治等信息.
現有方劑庫的原始數據表述不規范,必須把方劑中描述性語言進行信息轉化、分解為計算機能夠處理的數據信息,使之標準和規范,實現方劑數據在計算機系統內的能正確表達和合理組織.用計算機數據來表達,不僅有助于對數據的深入分析及運算,更是實現數據規范化和標準化的重要方式.本文數據預處理方式如下:
3.1.1 規范化數據:目的是把語義含糊、表達不規范概念詞進行規范處理,把一詞多義單義化,把多詞一義單詞化,多概念組合詞語拆分表達.
如眩暈,是指天旋地轉,頭暈等癥狀,要與單純的頭昏眼花、暈血、暈車等相區別;如發熱、大熱、夜熱等,均作發熱單一概念處理;如“清熱涼血”、“清熱燥濕”、“清熱化痰”,拆分為:清熱、涼血、燥濕、化痰4個概念詞表達.
3.1.2 結構化數據:目的是把方劑原始數據進行合理細化和組織,以達到符合數據挖掘要求,來實現重點概念有序排列及數據間關聯結構的形成.
方劑數據具有多種關聯,如藥藥之間、藥癥之間、功效主治之間等,“證、藥、方”是核心,“藥”是核心中的重點要素,它們的關系是:對“證”選“藥”配“方”.“證”由證候集組成的,“藥”含有性味、量等分別,“方”有復雜的組配關系及加減方問題.
3.1.3 數字化數據:數字比較容易表示出數據間的結構和相互的關系,而其他文字或符號描述的數據卻不易做到,因此盡可能用數字代替包含有某種知識的文字或符號.如劑量以克為單位的數字來描述,中藥性味、毒力等也采用數字來表示.如平性取值0則偏性相應取值如圖2:

圖2 數據的數字化表示
在所收集的338首脾胃方中篩選出癥狀頻數大于25的共106首,把每首方劑認為是一事務并有標志碼TID,分別為:T001、T002、…、T106,方劑的每味中藥編碼為 Ii(i=1,2,3……).
所收集的脾胃方劑及其成分,部分如下:
二陳湯加味 (T001):白術 甘草 陳皮 厚樸 茯苓半夏 蘇梗
四君子湯(T002):白術 甘草 人參 茯苓
香砂六君子湯(T003):白術 甘草 人參 陳皮 茯苓木香 半夏 砂仁 姜
芩連平胃湯 (T004):甘草 陳皮 厚樸 黃芩 黃連蒼術
藿香扶脾飲 (T005):甘草 陳皮 木香 厚樸 半夏藿香 麥芽
實脾飲(T006):白術 甘草 厚樸 茯苓 木香 木瓜草果 檳榔 姜 制附子 大棗
歸脾湯(T007):白術 甘草 人參 木香 茯苓 當歸黃芪 遠志 龍眼肉 酸棗仁
異功散(T008):白術 甘草 陳皮 人參 茯苓
理中丸(T009):白術 甘草 人參 姜
保元湯(T010):白術 人參 當歸 桂枝 黃芪 生附子
……
方劑的主要中藥編碼如下:
白術 I1、甘草 I2、陳皮 I3、人參 I4、厚樸 I5、木香I6、茯苓 I7、黨參 I8、半夏 I9、當歸 I10、獲荃 I11、白芍 I12、姜 I13、揀參 I14、蘇梗 I15、砂仁 I16、杏仁I17、黃連 I18、黃芪 I19、肉桂 I20、大棗 I21、遠志I22、山藥I23、扁豆I24 龍葵I25、半邊蓮I26、豆蔻仁I27、吳茱萸I28、黑附子I29、蒼術I30、肉豆蔻I31、木瓜 I32、草果 I33、制附子 I34、龍眼肉 I35、酸棗仁 I36、藿香 I37、揀參 I38、黃芩 I39、I40、桂枝I41、生附子 I42……
建立脾胃劑事務數據庫(部分)D如圖3:

圖3 事務數據庫D(部分)
根據事務數據庫D:構造FP-tree樹(因限于篇幅,FP-Tree略去),同時用中藥的在方劑中出現的頻率對應支持度,設最小為30,運用FP-growth改進算法,通過建立條件模式庫得到頻繁集,挖掘所有頻繁項集,發現脾胃方劑配伍規律如下:
甘草(97)、陳皮(92)、白術(93)、人參(78)、厚樸(56)、木香(48)、當歸(36),此7味中藥在方劑中出現頻率遠高于其它藥物,而且還可得出這幾味藥是構成:四君子湯、異功散及香砂六君湯的主藥,即是脾胃方劑的主藥.
經以上分析,結果證明,脾胃方方劑看似復雜,其實有著基本結構:
以四君子湯為代表的補氣健脾方劑是最基本的用方;其次是補氣藥+理氣藥配伍的方劑,如香砂六君子湯、異功散等方劑;補氣藥十理氣藥十化疾藥(或化濕藥)配伍的方劑,如參苓白術散、六君子湯等方劑;補氣藥十溫里藥配伍的方劑,如保元湯、理中丸等方劑.
本文回顧了關聯規則挖掘知識,在分析FP-Growth關聯算法的基礎上提出改進算法,并用之于中藥方劑數據挖掘,以求發現脾胃方劑遣方組藥的一些規律,這僅是本人把數據挖掘在應用于方劑配伍規律挖掘的初步探索,希望能為為廣大的中醫醫務人員提供參考.
隨著信息技術的發展,數據挖掘技術將成為促進中醫藥研發和現代化的重要工具,具有廣闊的發展前景,構建面向方劑配伍知識發現的綜合數據挖掘支持系統必將是是方劑配伍規律研究的努力方向,在拓展中醫藥的生存空間方面將會產生巨大的推動作用!
〔1〕Jiawei Han,Micheline Kamber. 數據挖掘: 概念與技術[M].北京:機械工業出版社,2007.
〔2〕朱明.數據挖掘[M].合肥:中國科技大學出版社,2008.
〔3〕Pang-Ning Tan,Michael Steinbach,Vipin Kumer.數據挖掘導論[M].北京:人民郵電出版社,2007.
〔4〕叢丹,王俊普,等.基于 FP-tree的模式分解算法[J].計算機工程,2005,31(16):77-79.
〔5〕周忠眉.中醫方劑數據挖掘模式和算法研究[D].杭州:浙江大學,2006.
〔6〕朱金偉.數據挖掘算法及其在中藥配方系統中的應用研究[D].常州:江蘇大學,2006.
〔7〕瞿融.方劑學[M].上海:上海中醫藥大學出版社,2008.
〔8〕蔣永光,等.中醫脾胃方配伍規律的數據挖掘試驗[J].世界科學技術,2003Vol.5No3:33-37.
TP391.1
A
1673-260X(2011)09-0198-03
安徽省教育廳科研資助項目(KJ2011Z259)