滕璐靈,宋 堯,張寶林
甘肅省中醫(yī)院,甘肅 蘭州 730050
在中醫(yī)醫(yī)院,HIS系統數據庫里的中藥處方數據是極其寶貴的,對中醫(yī)處方數據的分析,可以得到中醫(yī)師針對不同患者開具的中醫(yī)處方用藥規(guī)律,可對今后同類病癥的治療起到輔助參考的作用。因此本研究以關聯規(guī)則挖掘為模型,設計了中藥處方分析算法。
Apriori算法是一種挖掘布爾關聯規(guī)則頻繁項集的算法。其核心是基于兩階段頻集思想的遞推算法。算法需要對數據集進行多步處理,第一步,簡單統計所有含有一個元素項目集出現的頻率,并找出不小于最小支持度的項目集;從第二步開始循環(huán)處理直到再沒有最大項目集生成。循環(huán)過程是:第n步中,根據第n-1步生成的(n-1)維最大項目集產生m維候選項目集,然后對數據庫進行搜索,得到候選項目集的項集支持度,與最小支持度比較,從而找到n維最大項目集[1]。
中藥處方分析算法是以關聯規(guī)則模型為依據,在給定中醫(yī)數據集中進行頻繁項集的搜索[2],應用最小支持度計數閾值為度量標準從候選集中查找頻繁項集。關聯規(guī)則在D中的支持度(suppor t)是D中事務同時包含X、Y的百分比,即概率;置信度(conf idence)是包含X的事務中同時又包含Y的百分比,即條件概率。
查找頻繁項集是實現中藥處方分析的關鍵,采用查找頻繁項集的經典算法——Apriori算法為核心進行設計實現,但又通過縮小掃描事務集的范圍提高算法的執(zhí)行效率。
數據挖掘對基礎數據的要求較高,因此數據預處理就變得尤為重要。數據的預處理通常按照以下步驟進行:
2.1 數據篩選 中藥處方分析技術的研究對象是中醫(yī)醫(yī)囑中相關中藥處方的內容,所以作為基礎數據,首先需要將中藥處方信息從醫(yī)囑信息中分離開來[3]。
2.2 數據表標準化 在標準化處理的過程中需要解決的問題是中藥藥名的統一,一味中藥可能存在不同的別名,因此在統計分析時不應作為不同的藥物來對待,需要根據中藥藥名對照表進行匹配核對。
2.3 生成中藥處方 生成中藥處方布爾值統計表與事務統計表,流程見圖1、表1—5。
圖1 生成布爾值統計表與事務統計表的流程
表1 中醫(yī)診斷類別定義
表2 中藥藥物信息定義
表3 中藥處方信息定義
表4 中藥處方藥物布爾值統計
表5 中藥處方事務統計
以上得到的中藥處方事務統計表不是真正需要的有價值的信息,還需要通過中藥處方分析算法,對表中的記錄進行進一步分析[4],主要流程見圖2:
L1=f ind_f requent_1-itemsets(D);
for(k=2;Lk-1≠Φ;k++){Ck=apriori(Lk-1,min_sup);
for each t ransaction t∈D{Ct=subset(Ck,t);
for each candidate c∈Ctc.count++;}
Lk={c∈Ck|c.count≥min_sup}}
return L=所有頻繁集;
通過輸入不同的中醫(yī)診斷編碼,可以得到不同病癥的中藥處方分析數據。首先篩選出中醫(yī)診斷中痹癥的中藥處方部分事務,結合這些數據說明算法的實際應用,見附圖1。
臨時表中輸出頻繁項集為{I1,I15,I19,I68}。由頻繁項集可產生中藥處方用藥規(guī)則,其置信度計算如下:
將事務編號進行替換后得到中藥藥物名稱的規(guī)則記錄表,見表6。
表6 轉換后的規(guī)則記錄
傳統的Apriori算法在候選項集進行支持度計數時,每次都要對原事務表進行掃描,原事務表中的數據往往較巨大,導致該算法效率低下,因此在中藥處方分析算法中,設置了“藥物個數”字段,記錄每張?zhí)幏街邪闹兴幩幬飩€數,在進行候選集支持度計數時,只針對“藥物個數”>=3的記錄進行掃描,以提高算法的執(zhí)行效率。
附圖1 頻繁項集生成過程
[1] Jiawei Han,Michel ine Kamber.數據挖掘概念與技術[M].范明,孟小峰,譯.北京:機械工業(yè)出版社,2007:133.
[2] 李凌艷,李認書,孫鶴.數據挖掘技術在中藥研究中的應用[J].中草藥,2010,41(5):I0016-I0018.
[3] 錢增瑾,辛燕.中醫(yī)藥數據預處理方法的設計與實現[J].計算機工程與設計,2005,26(12):3199-3200.
[4] 丁一琦.基于Apriori算法的數據挖掘技術研究[J].現代計算機,2012(24):20-22.