国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于異構(gòu)信息網(wǎng)絡(luò)與TF-IDF的核心藥物發(fā)現(xiàn)算法

2023-05-14 08:06:20梁塵逸姚遠(yuǎn)哲
計(jì)算機(jī)時(shí)代 2023年5期
關(guān)鍵詞:聚類

梁塵逸 姚遠(yuǎn)哲

摘? 要: 提出一種基于異構(gòu)信息網(wǎng)絡(luò)和TF-IDF的核心藥物發(fā)現(xiàn)算法。其核心思想是建立包含癥狀、方劑等多種類型對象的異構(gòu)信息網(wǎng)絡(luò),并使用PathSim算法得到方劑之間的相似度來完成方劑聚類。以此為基礎(chǔ)使用綜合了劑量因素與TD-IDF算法原理的藥物重要性系數(shù)計(jì)算方法完成核心藥物發(fā)現(xiàn)。本文從《傷寒論》的方劑中劃分出9個(gè)主要聚類并給出了各個(gè)聚類上重要性排名前5的藥物,該算法可以考慮到多方面的信息,合理地挖掘出核心藥物。

關(guān)鍵詞: 異構(gòu)信息網(wǎng)絡(luò); PathSim; TF-IDF; 聚類; 核心藥物

中圖分類號:TP311.5? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ?文章編號:1006-8228(2023)05-31-05

Core drug discovery algorithm based on heterogeneous information network and TF-IDF

Liang Chenyi, Yao Yuanzhe

(School of Information and Software Engineering,University of Electronic Science and Technology of China, Chengdu, Sichuan 610054, China)

Abstract: In this paper, a core drug discovery algorithm based on heterogeneous information network and TF-IDF is proposed. The core idea is to set up heterogeneous information network including symptoms, prescriptions and other types of objects, and use PathSim algorithm to get the similarity between prescriptions to complete the clustering of prescriptions. Based on this, the core drug discovery is completed by using a drug importance coefficient calculation method that integrates the dose factor and the principle of TD-IDF algorithm. Nine main clusters are divided from the prescriptions of "Treatise on Febrile Diseases" and the top five drugs in each cluster are given. The algorithm can take into account many kinds of information to mine the core drugs reasonably.

Key words: heterogeneous information network; PathSim; TF-IDF; clustering; core drugs

0 引言

中醫(yī)是一個(gè)巨大的知識寶庫,目前中醫(yī)領(lǐng)域的數(shù)據(jù)挖掘研究受到了許多學(xué)者的關(guān)注,但受制于中醫(yī)學(xué)本身的復(fù)雜性以及技術(shù)的局限性,不少研究都是基于簡單的統(tǒng)計(jì)分析,例如頻數(shù)統(tǒng)計(jì),對藥物使用頻率、藥物味數(shù)等指標(biāo)進(jìn)行統(tǒng)計(jì)分析[1,2],能在一定程度上發(fā)掘出數(shù)據(jù)中的規(guī)律,也有一些研究者將關(guān)聯(lián)度分析[3]和復(fù)雜網(wǎng)絡(luò)的方法引入到中醫(yī)數(shù)據(jù)挖掘中,能夠挖掘出一些更深層的信息。

核心藥物發(fā)現(xiàn)是中醫(yī)數(shù)據(jù)挖掘領(lǐng)域一項(xiàng)非常有價(jià)值的工作,如果能有效地挖掘出不同類別方劑中的核心藥物,則能為開發(fā)新方劑提供參考,同時(shí)能幫助新手醫(yī)生快速掌握方劑精髓。目前大量關(guān)于核心藥物發(fā)現(xiàn)的研究都是針對治療某一種疾病的方劑,在此基礎(chǔ)上進(jìn)行頻數(shù)統(tǒng)計(jì)與關(guān)聯(lián)度分析[4,5],這種方法不適用于有大量不同類型方劑混雜的數(shù)據(jù)集。還有一些學(xué)者基于復(fù)雜網(wǎng)絡(luò)及社區(qū)檢測算法來進(jìn)行核心藥物發(fā)現(xiàn)工作[6]。

本文結(jié)合異構(gòu)信息網(wǎng)絡(luò)與TF-IDF算法,提出一種有效的核心藥物發(fā)現(xiàn)算法,首先構(gòu)建一個(gè)包含了癥狀、方劑等不同類型對象的異構(gòu)信息網(wǎng)絡(luò),利用PathSim算法全面衡量方劑之間的相似度,并以此為基礎(chǔ)進(jìn)行聚類,然后利用綜合了劑量因素與TF-IDF算法原理的藥物重要性系數(shù)來評估各個(gè)方劑聚類中所包含藥物的重要性,得出每個(gè)聚類中的核心藥物。

1 數(shù)據(jù)預(yù)處理

本文所使用的原始方劑數(shù)據(jù)來自《傷寒論》,采用正則表達(dá)式對方劑的主治癥狀、藥物名稱與劑量等進(jìn)行拆分,設(shè)置判斷條件篩選拆分不合格的數(shù)據(jù)并進(jìn)行手動(dòng)修正。

拆分完成后還需對癥狀和藥物進(jìn)行標(biāo)準(zhǔn)化工作,例如:頭痛與頭疼表達(dá)的意思相同;黃耆與黃芪實(shí)則為同一種藥物。本文采用手動(dòng)搜索替換加人工檢查的方式對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化。并且為方劑集中包含的藥物匹配了對應(yīng)的藥物功能信息,這些信息主要來源于《中藥大辭典》和《中華本草》。

對于方劑中藥物的劑量單位,重量單位統(tǒng)一換算為“兩”;體積單位統(tǒng)一換算為“斗”,其余單位如“枚”等則不變。由于本文算法需要使用藥物劑量信息,因此忽略半夏散(湯)、十棗湯、牡蠣澤瀉散、燒裈散這幾個(gè)不含劑量信息的方劑,使用剩下的109條方劑數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù)。

2 相關(guān)技術(shù)與算法設(shè)計(jì)

整個(gè)算法的主要流程如圖1所示。

2.1 異構(gòu)信息網(wǎng)絡(luò)與PathSim相似度

目前在方劑相似度計(jì)算上使用最多的是Jaccard相似度[7],其計(jì)算公式如式⑴,其中X與Y分別表示待對比的兩個(gè)方劑所包含的藥物組成的集合,這種方法能從藥物組成這一個(gè)維度較好地衡量兩個(gè)方劑之間的相似度。

[s_Jaccard(X,Y)=|XY||XY|]? ⑴

該算法只考慮了方劑的藥物組成,而現(xiàn)實(shí)中一些方劑的藥物組成可能完全一樣,例如桂枝湯與桂枝加桂湯,二者都是由桂枝、芍藥、甘草、大棗、生姜5種藥物組成,只是藥物劑量不同,但主治的病癥并不一樣,而在Jaccard相似度下,二者的相似度就是1,這顯然不合理。

本文使用PathSim算法來計(jì)算方劑之間的相似度,該算法是一種基于異構(gòu)信息網(wǎng)絡(luò)的相似度計(jì)算方法[8],原本用于以文獻(xiàn)為核心的文獻(xiàn)信息網(wǎng)絡(luò)挖掘中。通過分析網(wǎng)絡(luò)中的多種類型對象以及不同類型對象間的多種邊,可準(zhǔn)確地區(qū)分信息網(wǎng)絡(luò)中的不同語意,挖掘出更加具有意義的知識。

本文建立一個(gè)包含4種對象和3種邊的異構(gòu)信息網(wǎng)絡(luò),如圖2所示。其中S表示癥狀,P表示方劑,H表示藥物,F(xiàn)表示功能;3種邊均為無向邊且權(quán)重值為1,P-S邊表示方劑P可治療癥狀S,P-H邊表示方劑P包含藥物H,H-F邊表示藥物H擁有功能F。

通過選擇不同的元路徑可以包含不同的相似度信息,例如本文中的元路徑P-H-P代表兩個(gè)方劑使用了相同的藥物;P-H-F-H-P代表兩個(gè)方劑使用的藥物擁有相同的功能。指定元路徑下方劑之間的相似度計(jì)算方法如式⑵,其中Ml為指定的對稱元路徑l下方劑之間的路徑數(shù)量矩陣。

[s_PathSiml(px,py)=2Ml(x,y)Mlx,x+Ml(y,y)]? ⑵

M可以通過相鄰對象之間的路徑數(shù)量矩陣相乘得到,以元路徑P-H-P為例,MP-H-P=MP-HMH-P,其中MP-H表示從P到H的路徑數(shù)量矩陣。網(wǎng)絡(luò)中的邊均為無向邊,則MH-P=MP-HT,MP-H-P=MP-HMP-HT,其余元路徑對應(yīng)的路徑數(shù)量矩陣同理可得。對不同的元路徑賦予不同的權(quán)重值w,可實(shí)現(xiàn)多重元路徑的組合,r條元路徑組合得到的相似度計(jì)算方法如公式⑶所示。

[s_PathSim(px,py)=l=1rwls_PathSiml(px,py)]? ?⑶

2.2 譜聚類

得到方劑之間的相似度矩陣后需以此為基礎(chǔ)進(jìn)行聚類。目前聚類最常用的算法是經(jīng)典的k-means算法,用于方劑聚類時(shí)一般通過一些量化方法將方劑用向量表示,然后運(yùn)行算法[9]。然而k-means算法的步驟中有一步是計(jì)算聚類中心,直接給出方劑的相似度矩陣并不能計(jì)算聚類中心,因此無法直接使用k-means算法進(jìn)行聚類。

本文采用譜聚類[10]的方法來完成聚類步驟,這是一種基于圖論的聚類方法,該算法的核心思想是:將帶權(quán)無向圖劃分為兩個(gè)或兩個(gè)以上的最優(yōu)子圖,使子圖內(nèi)部盡量相似,而子圖間盡量距離較遠(yuǎn),從而完成聚類。譜聚類的一般流程如下。

⑴ 根據(jù)輸入的相似矩陣生成方式構(gòu)建樣本的相似矩陣S。

⑵ 根據(jù)相似矩陣S構(gòu)建鄰接矩陣W,構(gòu)建度矩陣D。

⑶ 計(jì)算出拉普拉斯矩陣L。

⑷ 構(gòu)建標(biāo)準(zhǔn)化后的拉普拉斯矩陣D-1/2 L D-1/2。

⑸ 計(jì)算D-1/2 L D -1/2 最小的k1個(gè)特征值所各自對應(yīng)的特征向量v。

⑹ 將各自對應(yīng)的特征向量v組成的矩陣按行標(biāo)準(zhǔn)化,最終組成n×k1維的特征矩陣V。

⑺ 將V中的每一行作為一個(gè)k1維的樣本,共n個(gè)樣本,用輸入的聚類方法進(jìn)行聚類,聚類維數(shù)為k2。

⑻ 得到簇劃分C(c1,c2,…,ck2)。

本文不采用譜聚類中常用的方法來生成相似矩陣,而是直接采用PathSim算法得出的相似度矩陣作為S,由于PathSim算法滿足自身最大化性質(zhì),即每個(gè)對象跟自己的相似度最大,為1,因此,S的主對角線元素全為1,則鄰接矩陣W=S-I,I為單位矩陣。

2.3 綜合了劑量因素與TF-IDF算法原理的藥物重要性系數(shù)

TF-IDF算法原本用以評估一字詞對于文件集中某一份文件的重要程度,已有研究者嘗試將其用于核心藥物的發(fā)現(xiàn)[11]。參考其原理,則藥物j在方劑聚類k中的重要性系數(shù)采用公式⑷來計(jì)算,其中|p_set|表示整個(gè)方劑庫大?。粅{n:hj∈pn}|表示包含藥物j的方劑數(shù)量;|{n:hj∈pn,pn∈cluster(k)}|表示聚類k中包含藥物j的方劑數(shù)量,可以發(fā)現(xiàn)該值變大時(shí)也會導(dǎo)致|{n:hj∈pn}|增大從而降低log函數(shù)的值,但只要該值不過大,則不會逆轉(zhuǎn)藥物j在方劑聚類k中的出現(xiàn)次數(shù)優(yōu)勢。

[TF_IDFjk=logp_set{n:hj∈pn}×{n:hj∈pn,pn∈clusterk}] ⑷

相比直接利用藥物出現(xiàn)頻率來發(fā)掘核心藥物[12],該算法綜合考慮了藥物在指定類中的出現(xiàn)次數(shù)與在整個(gè)方劑庫中的出現(xiàn)次數(shù),能有效降低在所有類型方劑中都頻繁出現(xiàn)的“百搭”藥物的影響。但不同于文件中的字詞,方劑中的藥物每一次出現(xiàn)都伴隨著不同的劑量,只考慮藥物的出現(xiàn)次數(shù)不夠全面,本文采用以下步驟來引入劑量因素:

⑴ 將每種藥物各自使用最多的單位作為其指定劑量單位,采用其余單位的劑量數(shù)據(jù)則忽略,以保證同種藥物使用同種劑量單位。

⑵ 分別計(jì)算每種藥物在各方劑聚類中的代表劑量,藥物j在方劑聚類k中的代表劑量D_REPjk=median(D(hj,p1),…,D(hj,pn)),p1,…,pn∈cluster(k),D(hj,pn)表示藥物j在方劑n中的劑量,為0則不計(jì)。通過取中位數(shù)來減少特殊劑量的影響。

⑶ 將D_REPjk值標(biāo)準(zhǔn)化,藥物j在方劑聚類k中的標(biāo)準(zhǔn)化代表劑量D_STDjk用公式⑸計(jì)算,其中D_REP_MAXj為藥物j在各方劑聚類中代表劑量的最大值。使得不同藥物間的劑量有可比性。

[D_STDjk=D_REPjkD_REP_MAXj]? ?⑸

綜合考慮藥物的劑量與TF-IDF算法原理,則完整的藥物重要性系數(shù)IMPjk計(jì)算方法如公式⑹所示。

[IMPjk=TF_IDFjk×[logD_STDjk+1+1]]? ⑹

當(dāng)藥物j在方劑聚類k中使用次數(shù)與劑量水平都較高且在其余類中使用次數(shù)與劑量水平都較低時(shí),IMPjk值增大,說明藥物j在方劑聚類k中重要性較高。

3 實(shí)驗(yàn)設(shè)置與結(jié)果討論

3.1 方劑相似度計(jì)算

基于2.1節(jié)中構(gòu)建的異構(gòu)信息網(wǎng)絡(luò),本文選取5條元路徑來運(yùn)行PathSim算法,每條元路徑的相似度信息及權(quán)重分配如表1所示。

計(jì)算得到方劑之間的相似度矩陣,能從多個(gè)維度綜合衡量方劑之間的相似度,例如桂枝湯與桂枝加桂湯,在使用Jaccard相似度的情況下相似度為1,而本文得出的二者相似度為0.65,更加合理。

3.2 方劑聚類

進(jìn)行聚類需要決定聚類數(shù)K,在此參考清代徐大椿所著《傷寒論類方》,其將《傷寒論》中方劑分為了11個(gè)主類以及22個(gè)雜方,可知聚類數(shù)K大約為30左右,經(jīng)過調(diào)試,確定聚類數(shù)K為26時(shí)聚類結(jié)果最合理。

值得注意的是,不同于其他領(lǐng)域數(shù)據(jù),方劑之間大多都具有一定相似性而沒有明顯的邊界,一些方劑歸于多個(gè)類別都是合理的,并沒有一個(gè)絕對正確的結(jié)果,通過聚類算法得出的結(jié)果很難與《傷寒論類方》或其他著作基于作者主觀看法得出的結(jié)論高度一致,只能通過對比在一定程度上說明聚類結(jié)果的合理性。

忽略只包含1個(gè)或2個(gè)方劑的聚類團(tuán),僅關(guān)注較大且能在《傷寒論類方》中找到相似類的主要聚類團(tuán),則聚類情況如表2所示。

由此可以看出,本文得出的聚類結(jié)果是有效的,能夠從方劑集中較為合理地劃分出9個(gè)主要聚類團(tuán),9個(gè)類各自的大小如圖3所示。

3.3 藥物重要性系數(shù)計(jì)算

基于完整的聚類結(jié)果使用公式6計(jì)算各個(gè)方劑聚類中藥物的重要性系數(shù),并將結(jié)果與僅計(jì)算TF_IDFjk以及使用頻數(shù)統(tǒng)計(jì)的情況進(jìn)行對比,依然只關(guān)注主要的9個(gè)聚類,則核心藥物的挖掘情況如表3所示。

相比頻數(shù)統(tǒng)計(jì),其余兩種方法都去除了一些高頻藥物,尤其是甘草,現(xiàn)實(shí)中甘草在各種方劑里使用非常頻繁,常起“調(diào)和諸藥”的作用,多數(shù)時(shí)候并非核心藥物,引入TF-IDF算法的思想后,能有效排除其影響。

完整算法與僅計(jì)算TF_IDFjk的情況整體區(qū)別不大,部分藥物的排名有調(diào)整,這與實(shí)際情況相符,因?yàn)門F_IDFjk已能較好評估藥物的重要性,其給出的核心藥物理應(yīng)在劑量上也占有優(yōu)勢,而完整算法能進(jìn)一步改善其結(jié)果,例如將聚類8即桂枝湯類中的桂枝重要性提高。

需要指出的是,由于《傷寒論》方劑數(shù)量少且聚類數(shù)量多,使得部分聚類太小,其中各種藥物出現(xiàn)的次數(shù)都極低,這導(dǎo)致獨(dú)有藥物憑借劑量優(yōu)勢排名較高,例如聚類7中的栝樓根,其實(shí)只在柴胡桂枝干姜湯中出現(xiàn)了一次。數(shù)據(jù)集大一些時(shí),此問題便不會產(chǎn)生。

3.4 實(shí)驗(yàn)結(jié)論

經(jīng)過《傷寒論》的數(shù)據(jù)驗(yàn)證,說明了構(gòu)建異構(gòu)信息網(wǎng)絡(luò)并使用PathSim算法對方劑進(jìn)行相似度計(jì)算是可行的,且相較于使用傳統(tǒng)的Jaccard相似度,能從多個(gè)維度更加全面地評估方劑相似度,在此基礎(chǔ)進(jìn)行方劑聚類,得到的結(jié)果也是合理的,而綜合了劑量因素與TF-IDF算法原理的藥物重要性系數(shù)能有效降低通用藥物的重要性,還能體現(xiàn)出藥物在劑量上的優(yōu)勢,更加全面地評估藥物是否為核心藥物。

4 結(jié)束語

本文提出的基于異構(gòu)信息網(wǎng)絡(luò)與TF-IDF的核心藥物發(fā)現(xiàn)算法能夠有效地對方劑數(shù)據(jù)進(jìn)行相似度計(jì)算與聚類,并以此為基礎(chǔ)挖掘出各個(gè)方劑聚類中的核心藥物。目前中醫(yī)學(xué)領(lǐng)域內(nèi)還有大量未被仔細(xì)研究的方劑數(shù)據(jù),本文的方法為挖掘其中的知識提供了一種新的工具。

不過需要承認(rèn)的是,本文雖然對方劑的主治癥狀手動(dòng)做了一些標(biāo)準(zhǔn)化的工作并對藥物的劑量進(jìn)行了換算,但由于現(xiàn)實(shí)中癥狀表述復(fù)雜且藥物劑量情況多樣,導(dǎo)致使用這些信息時(shí)很難考慮得非常全面,中醫(yī)數(shù)據(jù)挖掘的研究還需做得更細(xì)致才能取得更好的效果。

參考文獻(xiàn)(References):

[1] 武文星,郭盛,尚爾鑫,等.基于數(shù)據(jù)挖掘的補(bǔ)骨脂藥用源流及其配伍用藥特點(diǎn)分析[J/OL].世界中醫(yī)藥:1-23[2021-12-16].http://kns.cnki.net/kcms/detail/11.5529.R.20211118.2226.025.html

[2] 胡慧明,翁家俊,朱彥陳,等.基于數(shù)據(jù)挖掘的《中醫(yī)方劑大辭典》含山楂組方用藥規(guī)律研究[J].中國現(xiàn)代應(yīng)用藥學(xué),2021,38(21):2713-2720

[3] 方永光,陳楠楠,李巖.基于數(shù)據(jù)挖掘分析黃世林教授治療重癥系統(tǒng)性紅斑狼瘡的用藥規(guī)律[J].中國中醫(yī)急癥,2017,26(6):947-951,962

[4] 劉根,賀文彬,趙子強(qiáng),等.基于中醫(yī)傳承輔助平臺對老年性癡呆防治方劑核心藥物組合的篩選研究[J].中國實(shí)驗(yàn)方劑學(xué)雜志,2016,22(7):223-228

[5] 潘文.基于數(shù)據(jù)挖掘的治療原發(fā)性痛經(jīng)方證與核心藥物配伍規(guī)律分析[J].西部中醫(yī)藥,2015,28(12):75-77

[6] 張?jiān)?基于知識發(fā)現(xiàn)的中藥方劑核心藥物識別研究[D].博士,電子科技大學(xué),2021

[7] 李新龍,劉巖,周莉,等.基于方劑相似度的核心方藥及其適應(yīng)癥挖掘方法研究——以失眠癥為例[J].中醫(yī)雜志,2021,62(2):118-124

[8] Sun Y,Han J, Yan X, et al. PathSim: Meta Path-BasedTop-K Similarity Search in Heterogeneous Information Networks[J]. Proceedings of the Vldb Endowment,2011,4(11):992-1003

[9] 劉廣,孫艷秋.基于K-Means聚類算法的消渴方劑研究[J].中華中醫(yī)藥學(xué)刊,2017,35(1):173-178

[10] Luxburg U V . A Tutorial on Spectral Clustering[J].Statistics and Computing,2004,17(4):395-416

[11] 周偉.中藥方劑核心藥物及其配伍規(guī)律挖掘[D].碩士,南京大學(xué),2013

[12] 婁方璐,刁慶春,劉毅,等.濕疹中醫(yī)外治處方用藥規(guī)律分析[J].陜西中醫(yī),2012,33(1):97-100

猜你喜歡
聚類
基于K-means聚類的車-地?zé)o線通信場強(qiáng)研究
基于DBSACN聚類算法的XML文檔聚類
電子測試(2017年15期)2017-12-18 07:19:27
基于高斯混合聚類的陣列干涉SAR三維成像
條紋顏色分離與聚類
基于Spark平臺的K-means聚類算法改進(jìn)及并行化實(shí)現(xiàn)
局部子空間聚類
基于加權(quán)模糊聚類的不平衡數(shù)據(jù)分類方法
基于改進(jìn)的遺傳算法的模糊聚類算法
一種層次初始的聚類個(gè)數(shù)自適應(yīng)的聚類方法研究
基于熵權(quán)和有序聚類的房地產(chǎn)周期分析
河南科技(2014年23期)2014-02-27 14:19:14
内黄县| 成安县| 罗源县| 苏尼特右旗| 汪清县| 隆子县| 闸北区| 陇南市| 阿克陶县| 苏尼特左旗| 读书| 光泽县| 南乐县| 乳山市| 青州市| 洞口县| 九寨沟县| 水富县| 开江县| 民县| 文成县| 五原县| 班玛县| 新建县| 高雄市| 小金县| 东海县| 邛崃市| 穆棱市| 林芝县| 长丰县| 聂拉木县| 广水市| 大同县| 滕州市| 吉首市| 仁化县| 毕节市| 开远市| 台山市| 东明县|