首页> 中国专利> 基于复杂网络模型并行化PageRank算法的核心药物挖掘方法

基于复杂网络模型并行化PageRank算法的核心药物挖掘方法

摘要

本发明的基于复杂网络模型并行化PageRank算法的核心药物挖掘方法包括如下步骤:1)组网阶段:a)预处理生成中药数据集,格式化为文本数据;b)将初始文本数据部署至Hadoop平台;c)并行化组建中药药物网络TCM;d)结束。2)挖掘阶段:a)获取步骤1-c处理生成的中药药物网络文本文件;b)将药物网络文本文件部署至Hadoop平台;c)实施并行化PageRank算法发现核心药物节点;d)结束。本发明的基于复杂网络模型并行化PageRank算法的核心药物挖掘方法建立了中药药物复杂网络模型,利用并行化技术提高了组网以及PageRank算法的可扩展性和运行速度,并且能有效挖掘复方中的关键核心药物节点,研究中药配伍规律。

著录项

  • 公开/公告号CN102708285A

    专利类型发明专利

  • 公开/公告日2012-10-03

    原文格式PDF

  • 申请/专利权人 河海大学;

    申请/专利号CN201210122900.4

  • 发明设计人 吴骏;刘正;王志坚;许峰;

    申请日2012-04-24

  • 分类号G06F19/00;

  • 代理机构南京天翼专利代理有限责任公司;

  • 代理人汤志武

  • 地址 210098 江苏省南京市鼓楼区西康路1号

  • 入库时间 2023-12-18 06:42:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-05-18

    未缴年费专利权终止 IPC(主分类):G06F19/00 授权公告日:20150513 终止日期:20170424 申请日:20120424

    专利权的终止

  • 2015-05-13

    授权

    授权

  • 2012-11-28

    实质审查的生效 IPC(主分类):G06F19/00 申请日:20120424

    实质审查的生效

  • 2012-10-03

    公开

    公开

说明书

技术领域

本发明涉及一种中药复杂网络建模,以及在该模型上采用并行化PageRank算法挖掘中 药核心药物的技术。

背景技术

数据挖掘技术可以在大量数据下发现潜在的、有用的知识,是计算机人工智能的重要组 成部分,利用数据挖掘技术可以实现对中药复方数据的智能分析,发现潜在中药配伍规律。 常用的数据挖掘模型都是基于事务项的,即把复方看成由多种药物组成的事务并储存在事务 数据库中。

随着中药复方数据规模的增加以及对更深层次挖掘的要求,传统的基于事务项模型的中 药关联规则、分类和聚类等算法已经难以满足中药数据挖掘的需求。而将复杂网络分析以及 并行计算引入中药数据挖掘中可以弥补传统数据挖掘的缺陷,并能直观展现药物间关系,加 速系统响应速度,是有效的创新和尝试。

复杂网络分析如今已经涉及到社会关系、经济、交通、生命科学等多个领域,能够展现 节点关系拓扑结构、模拟信息传播以及挖掘节点隐藏知识。利用中药复方数据构建中药复杂 网络打破了传统中药数据挖掘基于事务项的建模模型,可以深入研究中药配伍规律。其中利 用复杂网络中的PageRank算法可以挖掘中药的核心药物,其主要包括两方面的应用:

1)哪些药物是治疗特定病症最常见且最关键的药物,比如治疗哮喘、消渴症等给定病 症,哪些中药材用得多并且对组方来说最为关键。

2)哪些药物是在大量中药组方中常用到的关键药物,可以大量随机选取复方数据库中 的一些复方作为初始数据,研究其中关键的药物有哪些。在此与第一种应用不同的是这里并 没有给定症状,而仅仅是随机选择的大量复方数据。

PageRank算法是一种数据挖掘的方法,传统的PageRank算法不能在分布式并行环境下 运行,随着数据的激增,普通的算法不再适用于大规模数据。为了提高算法的可扩展性以及 可伸缩性,以便能在大量复方数据下快速高效运行算法,需要用到并行计算MapReduce编 程模式。该编程模式主要包括Map和Reduce两个过程,体现了分治和合并的思想。实现 MapReduce编程模式的系统框架有Google集群和Hadoop集群等。

发明内容

本发明目的是:解决实现中药复杂网络建模,并在该模型上采用并行化PageRank算法, 以快速发现中药核心药物。

为解决上述问题,本发明技术方案是:基于复杂网络模型并行化PageRank算法的核心药 物挖掘方法,包括如下步骤:

1)组网阶段:

a)预处理生成中药复方数据集,格式化为文本数据;所说的预处理为抽取中药复方数据 中所有复方的药物组成;每个中药复方均格式化为文本数据;

b)将初始文本数据部署至Hadoop平台,即开发分布式并行程序的平台;所说的部

署为将步骤a生成的初始文本数据上传至Hadoop的分布式文件系统(HDFS);

c)并行化组建中药药物网络TCM;

具体过程如下:

1)为每个中药复方(一行文本数据)设定一个唯一复方标识ID;

2)建立从药物到复方标识ID之间的倒排索引;

3)为每个药物设定唯一药物标识id,并包含在复方中出现的频次;

4)再次建立倒排索引,还原中药复方的文本数据;

5)分布式并行程序的每个Map函数读取一行文本数据,解析出中药复方的药物节 点信息;

6)两两组合原复方中的药物,以按字典序小的药物ID加上频次作为Key,另一 个作为Value,以键值对<Key,Value>的形式经过shuffle & & sort(Hadoop平台自带 的两个步骤,主要对Key值进行排序整理等)发送到Reduce函数;

7)开发分布式并行程序的Reduce函数接收相同Key下组成的[Value]数组(即 Map函数传递的所有在该Key下的Value,结合上文来说即药物的ID与其出现频次), 按照下式计算两两药物间度量,将大于设定阈值的药对写入文件并保存至HDFS中

SCAB=|FAFB|min{|FA|,|FB|}

其中|FA∩FB|表示药物A、B一起组方的次数,min{|FA|,|FB|}表示药物A、B 中组方次数较少的药物的出现次数,而SCAB表示药物A、B共现次数与最少出现药物 次数的比率;

8)读取6)中生成的药对文件,格式化为邻接表形式保存中药药物网络拓扑结构;

9)结束

d)结束。

2)挖掘阶段:

a)获取步骤1-c处理生成的中药药物网络文本文件;

b)将药物网络文本文件部署至Hadoop平台;步骤2-b中所说的部署为将步骤2-a生成的药 物网络文本文件上传至Hadoop的分布式文件系统;

c)实施并行化PageRank算法发现核心药物节点;

步骤具体过程如下:

1)每个Map函数读取一行文本,存入Hadoop自定义数据类型Text的变量Value中;

2)解析Value中数据,保存到临时数组Tmp[];

3)传递节点信息(在分布式环境下维持整个网络结构)

4)从Tmp[]中解析出节点PageRankCentrality值(节点PageRank值的大小) 和节点的邻居节点,分别保存在变量P和临时链表AdjList中

5)令变量i为0

6)如果i小于临时链表长度AdiList.length,则发送 (前者为药物节点ID,后者为均分的 PageRankCentrality值)并执行7),否则执行8)

7)i自增1,执行6)

8)Map函数过程结束,Hadoop分布式文件系统执行shuffle & & sort

9)Reduce函数解析[Value]数组,分别用数据结构AdjpageRank保存节点结构, 临时链表ls保存每个传递过来的PageRankCentrality值

10)令j=0,p=0

11)如果j小于临时链表长度ls.length,则|p=p+ls.get(j)并执行12),否则执 行13)

12)j自增1,执行11)

13)AdjpageRank.pα*1|G|+(1-α)*p(按照式2计算节点 PageRankCentrality值作为本次迭代最新的值)

14)保存结果至HDFS中

15)结束

d)结束。

本发明的有益效果是:本发明基于复杂网络模型并行化PageRank算法的核心药物挖掘方 法建立了中药药物复杂网络模型,利用并行化技术提高了组网以及PageRank算法的可扩展 性和运行速度,并且能有效挖掘复方中的关键核心药物节点,研究中药配伍规律。

附图说明:

图1为核心药物挖掘操作流程图。

图2为本发明的基于复杂网络模型并行化PageRank算法的核心药物挖掘方法的流程图。

图3为生成中药复杂网络TCM的流程图。

图4为利用TCM网络用并行化PageRank算法(某一次迭代)挖掘核心药物的流程图。

具体实施方式

下面结合附图对本发明进行详细说明。

如图1所示,核心药物挖掘通过方剂数据库查询、不规则文本数据提取等获取中药复方 数据,经数据规范化、格式化等预处理生成文本数据,然后在Hadoop平台上并行化组建中 药药物复杂网络,最后在该网络上运行并行化PageRank算法以发现核心药物。

中药复方数据组网与行化PageRank算法挖掘核心药物是该发明的主要步骤,本发明的思 路就是通过复杂网络建模和并行化PageRank算法有效挖掘核心药物,同时提高算法可扩展 性和运行速度。

本发明的基于复杂网络模型并行化PageRank算法的核心药物挖掘方法的流程图如图2所 示。

步骤0为本发明的核心药物挖掘方法的起始状态;

在组网阶段(步骤1-3),步骤1是从数据库或者其他不规则文本数据中获取初始的中药 复方组网数据,并且格式化为文本数据以便上传至Hadoop平台的HDFS;

步骤2是利用MapReduce编程模式在初始数据集中并行组建中药药物TCM网络,包括两 次倒排索引以及两两组建药对联合键值对;

步骤3是把生成的中药药物网络保存至Hadoop平台的HDFS。

在挖掘阶段(步骤4-5),步骤4在步骤3所生成的TCM网络中运行并行化PageRank算法;

步骤5是将挖掘出的结果保存至HDFS。

步骤6是本发明的基于复杂网络模型并行化PageRank算法的核心药物挖掘方法的结束步 骤。

图3是对图2中步骤2的详细描述。。

步骤20为起始步骤。

步骤21是为每个中药复方设定一个唯一的ID值,从标号1开始。

步骤22是建立药物到复方ID的倒排索引。

步骤23是为每个药物设定id,从标号1%N,其中N表示该药物在复方中出现的频次, 即倒排索引的长度。

步骤24对倒排索引进行还原,即再次实行倒排索引算法,每行复方读入此次任务的某个 Map函数中。

步骤25判断该Map函数中的复方所含药物还能否两两组建联合键值,可以即执行26,否 则执行27(注意此时应该是说该次任务的Map过程结束)。

步骤26为组建联合键值<Key,Value>(其中Key小于Value)。

步骤27为Reduce函数中利用式1计算SCAB的值

SCAB=|FAFB|min{|FA|,|FB|}---(1)

其中|FA∩FB|表示药物A、B一起组方的次数,min{|FA|,|FB|}表示药物A、B 中组方次数较少的药物的出现次数,而SCAB表示药物A、B共现次数与最少出现药物 次数的比率。

步骤28为将结果保存至HDFS。

步骤29为图3的结束。

图4是对图2中步骤4中一次迭代的详细描述。。

步骤40为起始步骤。

步骤41为读取邻接表的一行数据,保存在变量Value中。

步骤42为解析Value变量,用临时数组Tmp[0]保存节点id,Tmp[1]保存邻接链表。 AdjList以及PageRankCentrality值P。

步骤43为发送节点结构以在分布式环境下保存节点结构。

步骤44令变量i=0。

步骤45判断如果i小于AdjList.length,则并执行步骤46,否则执行步骤48。

步骤46表示发送<AdjList.get(i),PAdjList.length>.

步骤47表示i目增1。

步骤48为Hadoop平台的Shuffle和Sort过程。

步骤49为Reduce接收到<Key,[Value]>。

步骤50为Reduce解析[Value]数组,分别用数据结构AdjpageRank保存节点结构,临 时链表ls保存每个传递过来的PageRankCentrality值。

步骤51令变量j=0,p=0。

步骤52判断如果j小于ls.length,则p=p+ls.get(j)并执行步骤53,否则执行步骤54。

步骤53表示p累加临时链表ls的数值,j自增1。

步骤55表示用式2计算新的PageRankCentrality值

P(n)=α(1|G|)+(1-α)ΣmL(n)P(m)C(m)---(2)

其中|G|是指药物节点总数,α是随机跳转因子(设置为0到1之间),L(n)是连接药物 节点n的邻居节点,C(m)是药物节点m的邻居节点个数。

步骤55为更新AdjpageRank中的值为p。

步骤56表示保存新的AdjpageRank。

步骤57为图4的结束步骤。

注:PageRank算法有多次迭代,迭代的终点为网络中90%以上的节点P值稳定不变。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号