汪玉薇,解 丹**,李曉東,吳輝坤
(1.湖北中醫(yī)藥大學信息工程學院 武漢 430065;2.湖北省中醫(yī)院肝病研究所 武漢 430061)
中醫(yī)處方用藥規(guī)律研究是中醫(yī)藥傳承與創(chuàng)新的關鍵內(nèi)容之一[1]。中醫(yī)處方數(shù)據(jù)挖掘多以“處方”類別為劃分依據(jù),其中以中藥處方挖掘最為常見[2,3](下文“處方”均指“中藥處方”)。中藥處方是由多種藥物組成的,但并不是藥物的隨機組合,中醫(yī)組方的原則可概括為“依法立方”[4]。目前,臨床處方中的藥物之間雖沒有嚴格的劑量要求,但“劑量”仍是處方藥物的藥力標識,藥物的用量不同,其在方劑中的藥力也不同。例如“小承氣湯”與“厚樸三物湯”均由大黃、厚樸、枳實組成,但前者組成為:大黃四兩、枳實三枚、厚樸二兩,主治陽明里實熱結(jié)證;后者組成為:厚樸八兩、枳實五枚、大黃四兩,主治氣滯腹?jié)M、大便不通[5]。因此,處方中藥物劑量特征是藥物在處方中確切功用與主治的標識,若用量失宜則達不到療效。另外,藥物間的配伍遵循一定規(guī)律,例如“甘草配大棗”,其中甘草甘潤平和,既益氣養(yǎng)心又和中緩急;大棗甘溫,益氣養(yǎng)血安神。兩藥組合使用,甘緩滋補,共奏補脾和中、養(yǎng)心安神之功,適用于心虛、肝郁所致之臟躁[6]。《臨床中藥學》中給出了每味藥物常見的配伍及禁忌,并注明了減毒或增效作用,藥物配伍減毒增效關系對于中藥處方挖掘有較強研究價值。
由于中醫(yī)處方中的藥物間具有較為復雜的非線性關系,除了常規(guī)的統(tǒng)計方法外,常見的數(shù)據(jù)挖掘方法包括:關聯(lián)規(guī)則[7]、因子分析、改進互信息法和復雜熵系統(tǒng)聚類、貝葉斯、復雜網(wǎng)絡等,其中又以關聯(lián)規(guī)則最為常見。關聯(lián)規(guī)則挖掘分為“搜索頻繁項集”和“生成規(guī)則”兩個階段,目前最常用的算法是Apriori[8]和FP-growth算法[9],此后陸續(xù)又有其他研究者對關聯(lián)規(guī)則算法做出了改進。這些算法的提出在不同程度上改進了關聯(lián)規(guī)則的挖掘效率,但這些算法并沒有考慮中藥處方“依法立方”的中醫(yī)特色。傳統(tǒng)關聯(lián)規(guī)則算法,多關注藥物出現(xiàn)的頻次,普遍將藥物視為獨立的分析對象,忽略了處方藥物的劑量、組合藥效等特征,只能達到體現(xiàn)處方藥物間的“共現(xiàn)規(guī)律”,而不能揭示“組方規(guī)律”。本文試圖通過納入處方藥物劑量特征及藥物配伍減毒增效關系,通過加權(quán)方式改進現(xiàn)有關聯(lián)規(guī)則模型以探尋一條新的組方規(guī)律挖掘,挖掘結(jié)果更接近真實世界處方的用藥規(guī)律,為中醫(yī)臨床用藥規(guī)律研究提供一條新思路。
在關聯(lián)規(guī)則模型中引入權(quán)值,需要綜合考慮如何設定權(quán)值和如何分配權(quán)值[10]。目前有水平加權(quán)、垂直加權(quán)以及混合加權(quán)三種解決方案[11]。其中,水平加權(quán)以項目重要程度設定權(quán)值,權(quán)值按項進行分配;垂直加權(quán)以時間因素設定權(quán)值,權(quán)值按事務進行分配;混合加權(quán)則綜合了前二種方法,權(quán)值為前兩種方式的混合。本文采用混合加權(quán)法。對于如何引入處方藥物劑量作為權(quán)值,有多種加權(quán)思路,通過文獻調(diào)研以及中醫(yī)專家實際討論,最為醫(yī)生接受的劑量加權(quán)是根據(jù)藥物的平均劑量。本文根據(jù)專家的建議,以基準劑量模型為區(qū)分依據(jù),分別構(gòu)建了平均劑量加權(quán)和配伍減毒增效關系加權(quán)兩種加權(quán)模型。第一種模型源于不同處方中藥物劑量不同,將包含有相同藥物的處方進行統(tǒng)計,計算出該藥物在所有處方中的平均使用劑量,然后根據(jù)某個處方中所含藥物與這一平均值進行對比。而第二種模型是依據(jù)《藥典》中描述的藥物配伍規(guī)律,對于有減毒增效作用的設置權(quán)重。
遍歷事務集T,所有項目構(gòu)成的集合為I={i1,i2,…,in},每一首處方t均為I的一個真子集,并具有一個唯一標識符tid。對于給定的項集itemset={i1,i2,…,ip},給itemset中的每一個項 ij賦權(quán)值 wj(wj∈[0,1],j∈[1,n])。設X={x1,x2,…,xp},Y={y1,y2,…,yp}(X、Y均是I的真子集且X∩Y=?),記Support(X)為X在T中的支持度,Confidence(X→Y)為規(guī)則X→Y在T中的置信度,min_sup為加權(quán)支持度閾值,min_conf為加權(quán)置信度閾值,規(guī)則的加權(quán)支持度wsup及加權(quán)置信度wconf的計算公式如下:
加權(quán)支持度:

加權(quán)置信度:

加權(quán)關聯(lián)規(guī)則是同時滿足加權(quán)支持度閾值和加權(quán)置信度閾值的關聯(lián)規(guī)則。根據(jù)本文構(gòu)建的二種加權(quán)模型,給出二種加權(quán)計算公式如下:
藥物平均劑量加權(quán)公式:

藥物配伍減毒增效關系加權(quán)公式:

其中,h代表當前需要計算權(quán)值的藥物,dcf(h)為藥物h在處方中的劑量值,djz(T,h)為處方T中藥物h的劑量平均值,若大于平均劑量權(quán)重為2,否則為1。ZYX代表的是《臨床中藥學》整理的藥物配伍減毒增效表,cont(set)表示當前藥物組合set是否是減毒增效的配伍藥對,若是則權(quán)重為2,否則為1。
在這二種改進的關聯(lián)規(guī)則算法中,第一種算法的流程為:首先初始化項目集set的支持度(設為0),然后遍歷事務集,若當前事務中包含項目集set,且項目集set中所有藥物對應事務集中藥物的劑量均大于其縱向平均劑量,則支持度累計加2,若當前事務中包含項目集set,但項目集set中存在藥物對應事務集中藥物劑量小于或等于其縱向平均劑量,則支持度累計加1,直到遍歷結(jié)束。第二種算法的流程為:首先初始化項目集set的支持度(設為0),然后遍歷事務集,若當前事務中包含項目集set,且項目集set在ZYX中,則支持度累計加2,若當前事務中包含項目集set,但項目集set不在ZYX中,則支持度累計加1,直到遍歷結(jié)束。
改進的關聯(lián)規(guī)則模型利用處方藥物的劑量特征及藥物配伍的減毒增效關系構(gòu)建加權(quán)支持度,突出了處方中的關鍵藥物(或藥物組合),提高了挖掘模型對真實世界的擬合度,使挖掘結(jié)果具有更高的臨床研究價值。
數(shù)據(jù)來源為某中醫(yī)院2012年7月至2015年8月間所有診斷為乙肝肝硬化的8617例門診記錄(參照2011年8月中國中西醫(yī)結(jié)合學會消化系統(tǒng)疾病專業(yè)委員會制定的《肝硬化中西醫(yī)結(jié)合診療共識》[12])。本文納入分析的字段包括患者的門診號、西醫(yī)診斷、性別、年齡、首次檢查總膽紅素、首次檢查凝血酶原時間、首次檢查白蛋白、末次檢查總膽紅素、末次檢查凝血酶原時間、末次檢查白蛋白以及全部處方信息。為確保挖掘?qū)嶒炠|(zhì)量,利用ETL技術進行數(shù)據(jù)清洗,清洗過程如下:

圖1 處方長文本分割前后結(jié)果對比示例

圖2 中藥名稱規(guī)范化前后對比示例
2.2.1 確定有效記錄
在中醫(yī)臨床專家指導下對原始數(shù)據(jù)中的檢驗值進行填補與修正,然后依據(jù)肝功能Child-Puge分級標準計算患者診療前后得分,篩選評分下降的案例作為實驗階段的有效數(shù)據(jù),最終獲得4549份有效案例。
2.2.2 確定有效處方
由中醫(yī)臨床專家對同一案例中的多處方現(xiàn)象進行歸并,并通過識別數(shù)值與逗號的方式對原始處方進行文本分割。針對原始處方數(shù)據(jù)的長文本格式,通過識別數(shù)值與逗號對原始處方進行分割(圖1)。最終獲得4473首有效處方數(shù)據(jù)。
2.2.3 規(guī)范中藥名稱
在4473首處方數(shù)據(jù)中共包含407種中藥名稱。經(jīng)中醫(yī)臨床專家審核,其中不規(guī)范的中藥名稱有188種,包含中藥別名97種、中藥簡稱3種以及炮制中藥88種。在中醫(yī)臨床專家的指導下,對中藥名稱進行了規(guī)范化處理,參照《中藥編碼規(guī)則集編碼》(中華人民共和國國家標準[GB/T 31774-2015])與《中國藥典》(2015年版)對預處理后的藥物進行嚴格規(guī)范化(圖2)。最終獲得257種規(guī)范化中藥名稱。
經(jīng)過上述處理后,所得數(shù)據(jù)集可直接作為下面挖掘?qū)嶒灥妮斎霐?shù)據(jù)集。
為觀察改進模型的效果,應與傳統(tǒng)模型進行對比。為此,采用Python語言共建立了三種模型,分別是傳統(tǒng)關聯(lián)規(guī)則模型、藥物平均劑量加權(quán)模型和藥物配伍減毒增效關系加權(quán)模型,其中傳統(tǒng)模型算法與SPSS和wika中內(nèi)置的關聯(lián)規(guī)則算法相同。
根據(jù)前面得到的輸入數(shù)據(jù)集,經(jīng)過多次探索性實驗,以生成頻繁項集及規(guī)則數(shù)量適中為依據(jù),最終確定選用最小支持度分別為7%、8%、9%,最小置信度分別為85%、90%、95%的9組挖掘模型參數(shù)組合。分別使用SPSS Modeler、Weka與仿真平臺,結(jié)合傳統(tǒng)關聯(lián)規(guī)則算法與上述各組模型參數(shù)挖掘?qū)嵶C研究數(shù)據(jù),分析發(fā)現(xiàn)使用三種工具得到的挖掘結(jié)果完全一致(表1)。
以支持度閾值min_sup=8%、置信度閾值min_conf=95%為例,對于頻繁二項集(Fset2),傳統(tǒng)關聯(lián)規(guī)則模型發(fā)現(xiàn)的頻繁二項集數(shù)量為43個,藥物平均劑量加權(quán)模型發(fā)現(xiàn)了56個,藥物配伍減毒增效加權(quán)模型發(fā)現(xiàn)了73個(表1)。當支持度閾值為9%、置信度閾值為85%時,對于頻繁二項集,傳統(tǒng)模型挖掘到28個,平均劑量和配伍減毒增效模型分別挖掘了35個和44個。無論是何種頻繁項集,二個加權(quán)模型得到的頻繁項集數(shù)量均明顯增多,表明找到了更多藥物組合,對于發(fā)現(xiàn)用藥規(guī)律有積極作用(表1)。
2.4.1 頻繁項集
由于中醫(yī)臨床頻繁二項集恰好對應中醫(yī)處方中的藥對,能夠體現(xiàn)中醫(yī)處方中不同藥味之間的兩兩配伍關系,本文以二項集為例,進行頻繁二項集的可視化展示。在頻繁項集網(wǎng)絡中,節(jié)點的大小代表了該節(jié)點對應藥物參與構(gòu)成頻繁項集的多少,節(jié)點越大代表其出現(xiàn)次數(shù)越多。連線的顏色深淺代表了兩端藥物構(gòu)成的頻繁項集的頻次高低,顏色越深代表這對藥物組合出現(xiàn)次數(shù)越多。當支持度閾值為9%、置信度閾值為85%時,三種模型挖掘到的頻繁二項集分別為28、35和44個,同時三組模型獲得的所有頻繁二項集中出現(xiàn)藥物的數(shù)量分別為24、30和27味,按藥物參與構(gòu)成項集的頻數(shù)排序(表1,表2)。
以藥對頻次為權(quán)重,繪制三個模型所得頻繁二項集藥物組成的復雜網(wǎng)絡(圖3)。
在Gephi中調(diào)整預覽比例為10%,可獲得最小支持度為9%的三組核心藥對:(ct)茯苓、丹參、茵陳蒿;(pj)茯苓、丹參、茵陳蒿、郁金;(zx)丹參、白術、郁金。

表1 三種模型挖掘結(jié)果對比

表2 藥物組成頻繁2項集頻次表(min_sup=9%,min_conf=85%)

圖3 藥物組成頻繁2項集復雜網(wǎng)絡圖(min_sup=9%,min_conf=85%)

圖4 規(guī)則網(wǎng)絡圖(min_sup=9%,min_conf=85%)

圖5 三種模式的頻繁1-5項集數(shù)量折線圖
2.4.2 有效規(guī)則
在支持度閾值為9%、置信度閾值為85%時,傳統(tǒng)模型、藥物平均劑量加權(quán)和藥物配伍減毒增效加權(quán)模型分別獲得規(guī)則的條數(shù)為15、11和18。使用Gephi繪制三組規(guī)則的復雜網(wǎng)絡圖(圖4)。
在取支持度閾值為9%、置信度閾值為95%時,藥物間的復雜網(wǎng)絡最為精簡,在Gephi中調(diào)整預覽比例為10%,可獲得三組模型所得規(guī)則中的關鍵藥物(或組合):(ct)白術;(pj)烏賊骨;(zx)白花蛇舌草-茯苓。當置信度閾值升為90%時,構(gòu)成網(wǎng)絡的藥物有所增加,獲得三組模型所得規(guī)則中的關鍵藥物(或組合):(ct)白花蛇舌草-茯苓;(pj)白花蛇舌草-茯苓;(zx)白花蛇舌草-茯苓。此外,在支持度閾值控制為9%、置信度閾值分別取85%和90%時,使用Gephi分析三組模型生成的規(guī)則,均在規(guī)則網(wǎng)絡中出現(xiàn)了“莪術-鱉甲-薏苡仁”這樣一個獨立的分支。
根據(jù)實驗結(jié)果,繪制不同支持度下三組模型獲得頻繁項集數(shù)量變化趨勢的折線圖(圖5)。
三條折線存在明顯分離,從上到下分別對應了7%、8%和9%的支持度,說明不同模型獲得的頻繁項集數(shù)量均受最小支持度取值影響(圖5)。圖中存在三個明顯的波形,在不同支持度取值的條件下,兩種加權(quán)模型獲得的頻繁項集數(shù)量均比傳統(tǒng)模型多,能夠獲得更多的候選規(guī)則,從而降低了遺漏有用知識的概率。
基于藥物劑量可以體現(xiàn)不同藥物(或組合)在處方中地位這一思想,本文在傳統(tǒng)關聯(lián)規(guī)則算法基礎上,引入了中藥的劑量特征。從臨床實用性出發(fā),提出了二種基于劑量加權(quán)的關聯(lián)規(guī)則改進模型,并利用可視化技術進行挖掘模型的構(gòu)建與實證研究。經(jīng)中醫(yī)臨床專家鑒定,本文提出的這2種加權(quán)模型較傳統(tǒng)關聯(lián)規(guī)則模型均得到了較好的結(jié)果,獲得了更多有價值的藥物組合,其中藥物配伍減毒增效關系加權(quán)模型表現(xiàn)得更為突出,充分體現(xiàn)了中醫(yī)治療肝病從解毒入手的思想[12]。使用本文提出的改進挖掘模型可以挖掘到更多頻繁項集,減少用藥規(guī)律的遺漏,有較強實用價值,為中醫(yī)處方用藥規(guī)律研究提供了新思路與方法。
中醫(yī)處方數(shù)據(jù)挖掘正在興起,挖掘過程中還有許多問題值得探索。首先是本文實驗中僅涉及了肝病科室的處方數(shù)據(jù),下一步可考慮將本模型推廣到其它科室,進一步驗證模型有效性。其次是數(shù)據(jù)質(zhì)量不高,預處理工作占據(jù)了大量時間,今后隨著數(shù)據(jù)質(zhì)量的提升,可以有效降低預處理時間。最后一點是中藥處方的藥物特征,除了劑量外,還有炮制、性味歸經(jīng)等多種特性,后面可以從處方的這些特性出發(fā),進一步擴展思路。