基于遗传算法的中药药对挖掘系统的设计与实现——毕业论文.doc

上传人:滴答 文档编号:1256136 上传时间:2019-01-19 格式:DOC 页数:28 大小:435KB
下载 相关 举报
基于遗传算法的中药药对挖掘系统的设计与实现——毕业论文.doc_第1页
第1页 / 共28页
基于遗传算法的中药药对挖掘系统的设计与实现——毕业论文.doc_第2页
第2页 / 共28页
基于遗传算法的中药药对挖掘系统的设计与实现——毕业论文.doc_第3页
第3页 / 共28页
基于遗传算法的中药药对挖掘系统的设计与实现——毕业论文.doc_第4页
第4页 / 共28页
基于遗传算法的中药药对挖掘系统的设计与实现——毕业论文.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、基于遗传算法的中药药对挖掘系统的设计与实现摘 要用数据挖掘技术研究了中药方剂配伍的规律。主要工作:分析了关联规则存在的问题,引入双向关联规则的概念;介绍了遗传算法的基本原理,研究了遗传算法在数据挖掘中的应用;将方剂库转换为位图矩阵,大大提高搜索效率;开发了一个基于遗传算法的中药药对药组挖掘系统。论文组织如下:介绍了研究背景和意义;阐述了相关的理论基础;提出了系统的设计方案;详细展示了基于遗传算法的双向关联规则挖掘系统的实现过程,包括位图矩阵的实现,个体的编码方法,适应度函数的设计,规则的提取,选择、交叉、变异等遗传操作的实现等;利用脾胃类方剂库对系统进行了测试,并对测试结果进行了分析。结果证明

2、:该系统能够快速高效地从方剂库中找出具有重要意义的药对药组,对中医药的研究发展有一定意义。关键词:数据挖掘;置信度;双向关联规则;遗传算法The Design and Implementation of Chinese Medicine Groups Mining System based on Genetic Algorithm AbstractThis paper researches the compatibility of chinese medicine prescriptions by data mining techniques. The main contributions i

3、nclude: analyzes the problems in the association rules, and introduces the concept of the bidirectional association rule; presents the foundation principle of genetic algorithm(GA), and studys the application of GA in the data mining; converts chinese medicine prescriptions database to a bitmap matr

4、ix, which greatly enhances the efficiency of search; develops a chinese medicine groups mining system based on GA. The paper is organized as follows: Section 1 introduces the background and significance; Section 2 sets forth the basis of the relevant theories; Section 3 proposes the design project o

5、f the system; Section 4 detailedly shows the implementation of the system, including the implementation of bitmap matrix, the individual coding method, the design of fitness function, rules of the extraction, genetic operations. Section 5 gives a test of the system on the prescriptions database abou

6、t spleen and stomach, and analyzes the results. It is proved that this system can find important and significant Chinese Medicine Groups from the prescriptions database, and is meaningful for the research of Chinese medicine. Key words: Data mining; Confidence; Bidirectional association rule; Geneti

7、c algorithm目 录论文总页数:24 页1 引言 .11.1 背景 .11.2 意义 .12 理论基础 .12.1 关联规则及存在的问题 .12.2 双向关联规则 .22.3 遗传算法简介 .43 需求分析及设计方案 .54 基于遗传算法的双向关联规则挖掘算法具体流程及实现 .74.1 位图矩阵实现 .74.2 编码 .94.3 适应度函数 .114.3.1 适应度函数设计 .114.3.2 适应度函数的实现 .114.4 规则的提取 .144.5 遗传操作 .154.6 算法流程 .185 测试 .18结 论 .21参考文献 .22致 谢 .23声 明 .24第 1 页 共 24 页

8、1 引言1.1 背景我国作为最大的中药材资源国,有着传统中医药文明的发祥地的地位,但是如今正面临着诸多挑战。我国,在世界的中药市场上却未能占有基本的主导地位。反而日本、韩国等国家成功地利用现代数据挖掘科技把中药行业发展成现代产业,占据了国际市场相当的份额,因此,继承和发展中医药不仅是中医界也是全国其他科研院校和科研机构的重要课题。中药对数据挖掘就是利用药对数据库从大量的中药对中抽取隐含的、未知的、有意义的药物组配模式。中药对数据挖掘将为中医方剂理论研究和中医临床用药研究提供重要模式参考,也为方剂配伍理论研究,尤其是新药对、新药组发现研究提供新方法和现代技术手段。1.2 意义关联规则是数据挖掘中

9、的重要技术之一,它能反映在事务数据库中数据项之间同时出现的规律,并发现不同数据项之间的联系。关联规则通过量化的数字描述数据项 A 的出现对数据项 B 的出现产生的影响。例如在大型商场中牛奶的销售对面包的销售的影响,发现这样的规则不仅可以应用于商品货架设计、货存安排,而且可以根据购买模式对用户进行分类,制定相应商务决策、销售策略。由于关联规则挖掘具有重要的现实意义,吸引了许多学者的研究,提出了众多的关联规则挖掘算法。目前,所有的关联规则挖掘算法都是基于支持度-置信度框架理论,具有较多的局限性。本文通过分析这些不足之处,引入双向关联规则的概念,实现了基于遗传算法的双向关联规则挖掘算法。2 理论基础

10、2.1 关联规则及存在的问题关联规则是形如 A=B 的蕴涵式,挖掘关联规则分为两步:第一步是识别所有的频繁项集,即支持度不小于用户指定的最小支持度的项集;第二步是从频繁项集中构造其置信度不低于用户给定最小置信度的规则,即强规则。这种基于支持度-置信度框架理论的关联规则挖掘方法存在如下问题:(1)不能有效地发现低支持度高置信度的有趣规则基于支持度-置信度框架理论的关联规则挖掘方法找到的强规则必须同时满足最小支持度阈值和最小置信度阈值,但有时人们感兴趣的规则往往是低支持度高置信度的8 。例如,超市中两物品 A 和 B,它们的销售量虽然很低,但经常是同时被顾客购买,管理人员希望将这种低支持度高置信度

11、的规则找出来。(2)不能确定“相互依赖”的规则 第 2 页 共 24 页关联规则反映 A、B 同时出现的概率和 A 出现的条件下 B 出现的条件概率。这样的规则只能确定 A 对 B 的“依赖” ,不能同时确定 B 对 A 的“依赖” ,但很多时候人们感兴趣的是“相互依赖”的规则。例如,中药的药组药对中,药之间必须是“相互依赖”的,如果药物 A 和 B 是药对,则必须是 A 通常与 B配伍,同时 B 也是通常与 A 配伍。如果只是 A 通常与 B 配伍,但 B 并不常与A 配伍,则 A 和 B 不是药对,因为 B 通常是只起辅助药性作用的药,这类药常在各种方剂中出现。用基于支持度-置信度框架理论

12、的关联规则挖掘方法不能找出上述中药药组药对。(3)找到的强规则并不一定是有趣的,甚至是错误的假定对分析涉及的家用电脑和 VCD 播放机的事务感兴趣。在所分析的10000 个事务中,6000 个事务包含家用电脑,7500 个事务包含 VCD 播放机,4000 个事务同时包含家用电脑和 VCD 播放机。运行传统的关联规则挖掘程序,最小支持度 30%,最小置信度 60%,将发现下面的关联规则:buys(X,“computer”) buys(X,“vcd-player”)support=40%,confidence=66%该规则是强关联规则。可事实上,电脑和 VCD 播放机是负相关的,买其中之一实际上

13、减少了买另一种的可能性,因为购买 VCD 播放机的可能性是 75%,大于 66%。 2.2 双向关联规则定义 1(双向关联规则):设 I=i1,i2,im是项的集合,任务相关的数据D 是数据库事务的集合,其中每个事务 T 是项的集合,使得 T I。每个事务有一个标示符,称作 TID。设 A 是一个项集,事务 T 包含 A 当且仅当 A T。如果 A I,B I,并且 AB=,则形如 AB 的表达式称为双向关联规则。显然双向关联规则是同时满足 A=B 和 B=A 的规则。反过来也可以说同时满足 A=B 和 B=A 的规则是双向关联规则。所有双向关联规则 A B 有两个置信度。 一个是关联规则 A

14、=B 的置信度:conf(A=B) = P(B|A) = P(AB) / P(A)另一个是关联规则 B=A 的置信度: conf(A=B) = P(A|B) = P(AB) / P(B) 置信度 conf(A=B)表示 A 出现的条件下 B 出现的条件概率,也就是 A 和B 同时出现的概率与 A 出现的概率的比值。它反映了 A 对 B 的依赖程度。它的值越大,则 A 对 B 的依赖越强;反之,值越小,则 A 对 B 的依赖越弱。如果值为 1,则意味着 A 的每一次出现都伴随着 B 的出现(反过来则不一定) ,A对 B 是 100%的依赖。第 3 页 共 24 页置信度 conf(B=A)表示

15、B 出现的条件下 A 出现的条件概率,也就是 B 和A 同时出现的概率与 B 出现的概率的比值。它反映了 B 对 A 的依赖程度。它的值越大,则 B 对 A 的依赖越强;反之,值越小,则 B 对 A 的依赖越弱。如果值为 1,则意味着 B 的每一次出现都伴随着 A 的出现(反过来则不一定) ,B对 A 是 100%的依赖。双向关联规则 A B 的这两个置信度共同反映了 A 和 B 的相互依赖程度。我们很多时候对相互依赖程度高的规则即下面定义的强双向规则感兴趣。定义 2(强双向规则):规则 A=B 和 B=A 同时满足最小置信度阈值(min_conf)的双向规则称作强双向规则。下面把上述概念推广

16、到多个项集之间的情况。定义 3(n 个项集的双向关联规则):设 CiI(2C2C3Cn、C 2=C1C3Cn、C i=C1C2Ci-1Ci+1Cn、 、C n=C1C2Cn-1 的规则,此时C1=C2C3Cn、C 2=C1C3Cn、C i=C1C2Ci-1Ci+1Cn、 、C n=C1C2Cn-1 的置信度分别为:Conf(C1=C2C3Cn) = P(C2C3Cn|C1) = P(C1C2Cn) / P(C1)Conf(C2=C1C3Cn) = P(C1C3Cn|C2) = P(C1C2Cn) / P(C2)Conf(Cn=C1C3C(n-1) = P(C1C2C(n-1)|Cn) = P(

17、C1C2Cn) / P(Cn)如果 C1=C2C3Cn、C 2=C1C3Cn、Ci=C 1C2Ci-1Ci+1Cn、 、C n=C1C2Cn-1 同时满足最小置信度阈值(min_conf) ,则项集C1、C 2、 Cn 的双向关联规则是强双向规则。项的集合称为项集(itemset),包含 k 个项的项集称为 k-项集。我们把上述概念用于 k-项集,可得到如下定义:定义 4(项的置信度):设 Tk=I1,I2,Ik是一个 k-项集,I i(1Ik)是Tk 的一项,则 k-项集 Tk 的项 Ii 的置信度 conf(Ii,Tk)为事务数据库 D 中包含I i的事务同时包含I 1,I2,I(i-1)

18、,I(i+1),Ik的百分比,即: Conf(Ii,Tk) = P(I1,I2, ,I(i-1),I(i+1), ,Ik|Ii)=P(I1,I2, ,Ii, ,Ik)/P(Ii)定义 5(k-项集强双向规则):设 Tk=I1,I2,Ik是事务数据库 D 中一个 k-项集,如果 Tk 的任一项的置信度都满足最小置信度阈值 (min_conf),则称 k-项第 4 页 共 24 页集 Tk 为符合强双向规则的 k-项集,简称 k-项集强双向规则。2.3 遗传算法简介遗传算法(Genetic Algorithm, GA)是近几年发展起来的一种崭新的全局优化算法。1962 年霍兰德(Holland)

19、教授首次提出了 GA 算法的思想,它借用了仿真生物遗传学和自然选择机理,通过自然选择、遗传、变异等作用机制,实现各个个体的适应性的提高。从某种程度上说遗传算法是对生物进化过程进行的数学方式仿真。这一点体现了自然界中“物竞天择、适者生存 “进化过程。与自然界相似,遗传算法对求解问题的本身一无所知,它所需要的仅是对算法所产生的每个染色体进行评价,把问题的解表示成染色体,并基于适应值来选择染色体,使适应性好的染色体有更多的繁殖机会。在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群染色体,也即是假设解。然后,把这些假设解置于问题的“环境”中,也即一个适应度函数中来评价。并按适者生存的

20、原则,从中选择出较适应环境的染色体进行复制, 淘汰低适应度的个体,再通过交叉,变异过程产生更适应环境的新一代染色体群。对这个新种群进行下一轮进化,至到最适合环境的值。由于遗传算法是由进化论和遗传学机理而产生的搜索算法,所以在这个算法中会用到很多生物遗传学知识,下面是将会用到的一些术语说明:一、染色体(Chromosome)染色体又可以叫做基因型个体(individuals),一定数量的个体组成了群体(population),群体中个体的数量叫做群体大小。二、基因(Gene)基因是串中的元素,基因用于表示个体的特征。例如有一个串 S1011,则其中的 1,0,1,1 这 4 个元素分别称为基因。

21、三、适应度(Fitness)各个个体对环境的适应程度叫做适应度(fitness) 。为了体现染色体的适应能力,引入了对问题中的每一个染色体都能进行度量的函数,叫适应度函数. 这个函数是计算个体在群体中被使用的概率。四、种群(population)染色体带有特征的个体的集合称为种群。该集合个体数称为种群个体的大小。3 需求分析及设计方案由于事务数据库一般只具有对大量数据的存取、检索功能,对于用户的一般性的使用可以满足,然而,正是由于数据库中存放了大量的数据,不同的数第 5 页 共 24 页据项,以及多个数据项之间还存在有大量的隐含的、未知的、有意义的数据关系,这些关系对于用户有着及其重要的作用,

22、所以数据挖掘便在此情况下产生了。遗传算法是数据挖掘技术中的一个重要算法。这是由于它具有快捷、简便、鲁棒性强、适于并行处理以及高效、实用等显著特点,在各类结构对象的优化过程中显示出明显的优势。它的思想源于生物遗传学和适者生存的自然规律,是具有“生存检测”的迭代过程的搜索算法。遗传算法以一种群体中的所有个体为对象,并利用随机化技术指导对一个被编码的参数空间进行高效搜索。其中,选择、交叉和变异构成了遗传算法的遗传操作;初始种群编码、初始群体个数的设定、适应度函数的设计、遗传操作设计、控制参数设定五个要素组成了遗传算法的核心内容。与传统的搜索方法相比,遗传算法具有如下特点: (1)搜索过程不直接作用在

23、变量上,而是在参数集进行了编码的个体。此编码操作,使得遗传算法可直接对结构对象(集合、序列、矩阵、树、图、链和表)进行操作。 (2)搜索过程是从一组解迭代到另一组解,采用同时处理群体中多个个体的方法,降低了陷入局部最优解的可能性,并易于并行化。 (3)采用概率的变迁规则来指导搜索方向,而不采用确定性搜索规则。对搜索空间没有任何特殊要求,只利用适应性信息,不需要导数等其它辅助信息,适应范围更广。中国自古以来就有着传统中医药文明的发祥地的地位,中药是我国特有的资源,但是中国本土中医学长期以来的发展并不是很大,在国际医学界就更不具有很强的地位。多年的时间过去了,中药方剂的更新和发展并没有很大的变化,

24、很多都还建立在很久以前就有的方剂基础之上,没有出现比较多的较新的方剂,应用遗传算法的数据挖掘系统在此情况下可以发挥着及其重要的作用。通过数据系统能够在药对数据库的大量数据中,找到很多隐含的、未知的、并很有应用价值的药对药组以及很多的有意义的药物组配的规则和模式。中药对数据挖掘还将为中医方剂理论研究和中医临床用药研究提供重要模式参考,也为方剂配伍理论研究,尤其是新药对、新药组发现研究提供新方法和现代技术手段。在系统进行数据挖掘过程中,为了减少对事务数据库的扫描、提高挖掘效率,本文先把事务数据库转化成位图矩阵,然后再在此位图矩阵上挖掘有趣的强双向关联规则。下面是对位图矩阵模型的描述。用 Ik(k

25、为自然数 )表示事务数据库中的一项,I 1、I 2、I k、I n 表示事务数据库中的所有项。用 Tj(i1,i2,ik,in)表示事务数据库中的一个事务, ik 对第 6 页 共 24 页应 Ik,占用 1 位(bit), 当事务 Tj 含有 Ik 这项时,Tj 的 ik 位为 1,否则为 0,所以事务 Tj 可以用位图 i1i2ikin 来表示。T 1、T 2、T j、T m 表示事务数据库中所有的事务,T 1、T 2、T j、T m 都可以用位图 i1i2ikin 来表示,这样所有这些位图就构成了事务数据库的位图矩阵。1 1 0 1 00 1 0 0 11 0 1 1 01 1 1 0

26、11 0 1 0 01 1 0 0 10 1 0 1 0图 1 就是一个位图矩阵。该位图矩阵对应的事务数据库含I1、I 2、I 3、I 4、I 5 共 5 个项,含 T1、T 2、T 3、T 4、 T5、T 6、T 7 共 7 个事务。事务T1 的位图为 11010,所以含 I1、I 2、I 4 三个项;事务 T2 的位图为 01001,所以含I2、I 5 两个项;事务 T3 的位图为 10110,所以含 I1、I 3、I 4 三个项;事务 T4 的位图为 11101,所以含 I1、I 2、I 3、I 5 四个项;事务 T5 的位图为 10100,所以含I1、I 3 两个项;事务 T6 的位图

27、为 11001,所以含 I1、I 2、I 5 三个项;事务 T7 的位图为 01010,所以含 I2、I 4 两个项。得到事务数据库的位图矩阵后,就很容易求出某双向关联规则的支持度计数。例如,要求出图 1 所对应事务数据库中 I2 和 I4 同时出现的次数。先设计只包含 I2、I 4 两个项的事物 T,其位图为 01010。判断由 I2 和 I4 构成的规则是否出现在事务 Tk 中,只需判断 T 的位图与 Tk 的位图按位相与操作后得到的新位图是否与 T 的位图相同。如果相同,则说明事物 Tk 包含由 I2 和 I4 构成的规则;反之则不是。通过用 T 的位图与事务数据库中每一事务的位图进行上

28、述操作,可以求出由 I2 和 I4 构成的规则的支持度计数。这种方法是高效的,理由有两点:一是事务数据库的位图矩阵相对于事务数据库本身在尺寸上大大减小了;二是按位相与运算速度很快。4 基于遗传算法的双向关联规则挖掘算法具体流程及实现4.1位图矩阵实现本设计使用的后台数据库为 SQL2000,用到的数据表为药物表和方剂表。I1 I2 I3 I4 I5图 1 一个位图矩阵的例子T1T2T3T4T5T6T7第 7 页 共 24 页位图矩阵的建立是在查询数据库中数据的基础上产生的。在查询数据库得到的位图矩阵中,行表示方剂,列表示此数据库中的药物,矩阵中的数据项由 1 和 0 表示,假如 Ri,j =

29、1(R 表示位图矩阵,i 表示横坐标,j 表示纵坐标),表示第 i 个方剂中含有第 j 位对应的药物。建立位图矩阵的步骤如小:(1)使用 sql 查询语句,通过查询方编号得到方剂表中的方剂的总数量,以此得到位图矩阵的行,也就相当于上一小节提到的事务 Tk。String queryId = “select 方编号 from 方剂表“;Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver“);/通过 JDBC 建立数据库连接Connection dbConn = DriverManager.getConnection(dbURL,

30、userName, userPwd); /连接到数据库,提供相应的用户名、密码Statement stmt = dbConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); /用 dbConn 连接创建 SQL 语句对象ResultSet rsId = stmt.executeQuery(queryId); while(rsId.next()drugIdi+ = rsId.getString(1); /把方编号存入数组经过以上语句,此时得到了位图矩阵所需要的行的信息,即方编号,并把此数据

31、存放到名字为 drugId 的数组中,数组中存放的数据的个数即为方剂的数量,也就是以后用到的位图矩阵的行数。(2)接下来需要得到位图矩阵的列数和列所对应的药物的名称。String drugName= new String405; 定义存放药名的数组。String queryName = “select 药名 from 药物表“;定义查询药物表中药名的 sql 语句。ResultSet rsName = stmt.executeQuery(queryName); 定义存放查询得到的结果集的变量。int p 0;while(rsName.next()if(p=0)drugNamei+ = rsName.getString(1);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。