APP下载

基于复杂网络的中医痰症用药配伍规律研究

2020-04-22马宁白金牛邢俊凤郭静霞

中医药信息 2020年2期
关键词:方剂社团标签

马宁,白金牛,邢俊凤,郭静霞

(内蒙古科技大学包头医学院,内蒙古 包头 014040)

中医药作为中华民族的瑰宝,在数千年的发展历史中,积累了丰富和宝贵的知识财富,特别是一些名家医案数据对于后人总结用药规律,更好地应用于临床实践具有积极地促进作用。研究人员利用频率分析、关联规则和聚类分析等方法分析用药规律,已成为一种常用的研究方法和手段[1-2]。

相比于这些传统的数据挖掘方法,近年来出现的复杂网络分析方法,因其挖掘深度及良好的扩展性,受到了越来越多研究人员的青睐,例如章亚东等针对中医治疗肺癌处方建立方剂-药物网络,在确立核心药物的基础上使用基于关联规则的推荐算法来进行配伍规律的挖掘[3];吕庆莉基于药物间关联度建立中药复杂网络,然后使用改进COPRA算法对脑血管疾病用药规律进行挖掘[4];王嫣然等构建失眠的中药复杂网络模型,同时引入复杂网络节点中心性的概念,挖掘核心节点,再进行聚类划分确定药物配伍关系[5]。上述这些方法均是在构建复杂网络模型的基础上,结合药物的特性、作用等在算法上做出了一定的改进,从而得到了很多传统数据挖掘无法得到的计算结果,对于分析药物配伍规律提供了新颖的参考依据。

本文针对痰症的中药方剂用药,通过数据的采集及预处理,首先构建基于方剂药物的痰症复杂网络模型,同时依据药物特性,确定药物权重,在此基础上使用改进的COPRA算法实现痰症药物配伍规律的挖掘,最后通过与传统关联规则算法的对比分析,验证本方法的有效性和先进性。

1 研究方法

1.1 构建中药复杂网络模型

在传统的复杂网络模型构建过程中,通常以药物为节点,药物间连接为边,建立复杂网络模型,但这样建立起来的复杂网络模型会导致方剂中经常出现的佐使药节点度过大,而在计算过程中被认为是核心药,进而影响整个计算结果的准确性。

本文首先建立每个方剂的药物子网,即以每个方剂为对象,选择方剂中的药物作为网络节点,根据“君臣佐使”的配伍特点,将方剂中药物分类为君药、臣药和佐使药,其中君药、臣药作为网络节点分别与其他药物建立连接边,佐使药只与君药、臣药建立连接边,而彼此间不连接,这样君药、臣药的节点度会更大,以突出核心药物的地位。例如方剂“苓桂术甘汤”中:茯苓为主药,桂枝为臣药,白术和甘草为佐使药,建立的方剂子网如图1所示。

图1 “苓桂术甘汤”方剂子网

在此基础上,根据方剂中药物之间是否存在连接边来确立中药复杂网络,如果两个药物出现在不同的方剂子网中,并且存在连接边,则在复杂网络中建立连接边,并设置权重为1,如果该连接边在n个方剂中出现,则在复杂网络中该连接边的权重为n。

1.2 定义药物核心度

在构建的复杂网络模型中,每个药物的重要程度是不一样的,这里通过对PageRank算法做出改进,来计算药物的核心度。

PageRank算法是一种根据相邻节点重要性来计算节点权重的迭代算法[6],该算法在搜索引擎排名、知识推荐等领域中有着广泛的应用。在该方法中,每个节点核心度由其PR值来决定。节点pi的核心度可由如下公式计算:

(1)

其中Mpj是所有pj邻边的集合,L(pj)是pj连接边的数目,N是节点总数,α为阻力系数,一般取0.85。

由于每个节点初始的核心度的是不一样的,这是由在构建中药复杂网络模型时,节点连接边权重及节点的度决定的,因此在迭代开始前初始化节点核心度公式的如下:

(2)

其中d(pi)代表节点pi的度,Wij代表节点pi与pj之间连接边的权重,如果该边不存在,则Wij值为0。

确定药物核心度的计算过程描述如下:

步骤1:按照公式(2),初始化药物核心的PR值。

步骤2:按照公式(1),进行异步迭代,更新药物节点的PR值。

步骤3:当|PRk+1-PRk|≤m,即在k+1次迭代后,每个药物节点的核心度PR值与之前一次迭代的值的差小于给定值m则停止迭代,否则继续。

最后输出结果PRk+1。

1.3 改进COPRA社团发现算法

COPRA算法是由Steve Gregory在2010年提出的一种基于标签传递的社团发现算法[7],该算法可有效发掘重叠社团,而本文要研究的药物配伍规律中,同一药物会出现在不同的配伍组合中,这一问题即可归纳为复杂网络中重叠社团的发现,该算法的基本思想为:当前节点会根据邻居社团所归属的社团情况,决定本节点的归属,在算法执行时会使用隶属度(Belonging Coefficient)来决定节点社团的归属。

针对药物配伍规律社团发现的过程应当以核心药物节点为中心进行社团的划分,而由于COPRA算法是一类标签传递算法,为了使节点得到有效的划分,应提升核心药物节点标签的传播度,也即提升节点对于核心药物节点规划社区的隶属度。具体改进方法如下:

改进1:在标签进行传递时,假设节点pi的邻居节点包含名为lj的社团标签,则传递后pi中针对标签lj的权重wj定义如下:

∑KMjPRk

(3)

其中Mj代表所有包含标签lj的pi的邻居节点的集合,wj-1代表上次传递后节点针对lj的标签权重。

改进2:给定划分社团个数v,对于每一次节点完成标签传递后,如果社团标签均小于隶属度1/v,则优先选择PR值(药物核心度)最大的标签进行标记。

同时,由于COPRA算法在迭代过程中随机性较强,为有效控制社团内节点的个数,这里采用借鉴文献[8]中定义的密度函数对社团演变过程进行控制,抑制规模过大社团的出现。

2 实验结果

通过中医e百、药智中药方剂数据库等获取治疗祛痰方剂共计414首,通过数据整理、清洗、规约构建数据源。在此基础上按照前一节给出的方法构建方剂复杂网络,同时删除出现频率过低(频率≤5)的药物节点及其关联边得到符合要求的稀疏中药复杂网络模型,该复杂网络模型共包含药物节点161个,药物连接边4 396条,表1所示为网络中主要核心药物度值及其权重值。

表1 核心药物度值及权重值统计

基于建立的复杂网络模型,使用改进的COPRA算法发现重叠社团,这里设置迭代次数为20(经实验分析,算法在迭代20次时结果已趋于稳定),社团节点数目最大值为4,隶属度删除阈值v为0.3进行数据挖掘。由于COPRA算法具有一定的随机性,每次运行的结果均不尽相同。这里重复运行方法200次,统计重复出现药物组合的出现频率,其中出现频次超过50次的药物组合共计116个,部分出现频率高的药物组合统计结果如表2所示。

为了通过对比分析验证该方法的有效性,针对该数据源使用关联规则Apriori算法进行挖掘,共获取置信度大于70%的配伍规则42个,如表3所示为置信度较高的部分药物组合统计结果。

表2 复杂网络改进COPRA方法挖掘结果统计

表3 关联规则Apriori算法挖掘结果统计

3 讨论

分析结果表1中的数据结果可知,通过PageRank算法计算的药物核心度可有效代表治疗痰症药物的重要程度,其中半夏、茯苓、南星、瓜蒌等在祛痰方剂中经常以君臣药身份出现,故权值较高,而甘草等经常作为调和诸药的佐使药出现,虽然其连接度较高,但核心度权值偏低,这根算法的初衷是一致的。通过分析表2的计算结果发现,一方面,挖掘结果中的药物组合以核心药物为主,且许多结果与表3中的关联规则算法的挖掘结果是一致的,符合临床用药的相关科学依据,这也进一步证明了方法的可行性;另一方面,在本文介绍的方法挖掘结果中出现了很多利用关联规则挖掘不到的药物组合。如:{黄芩,南星,贝母}{橘红,栀子}等,这些药物组合被证明是合理的,具有进一步研究的参考价值。

综上所述,本文给出的一种复杂网络用药配伍规律分析方法可充分依托核心药物进行用药规律的发掘,并且可以通过调整算法中发现社团节点数目来控制药物组合中药物的数量,方法挖掘结果的数量和质量整体优于传统数据挖掘方法。因此本方法研究成果可以为利用数据挖掘分析用药规律提供一种的新的方法和工具,为揭示用药规律和特点提供有力的支撑。

猜你喜欢

方剂社团标签
缤纷社团
蒙医药清瘟杀黏类方剂组方的知识发现研究
中医医案方剂多维相似度算法设计与探索
基于信任模型的中医药方剂相似度计算方法
中药方剂,新冠肺炎患者的福音
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
最棒的健美操社团
缤纷社团,绽放精彩
让衣柜摆脱“杂乱无章”的标签