基因表达式编程下的加速进化和紧凑分类

Evolving Accurate and Compact Classification Rules With Gene Expression Programming

摘要:分类是数据挖掘的基本任务之一。大多数局部执行的规则归纳,决策树或者通过贪婪搜索来生成分类规则的算法通常比必要的复杂。用来模式分类的进化算法最近受到越来越多的关注,因为它们可以执行全局搜索。在本文中,我们提出了一种通过使用基因表达式编程(GEP)来发现分类规则的新方法,GEP是一种具有线性表示的遗传编程(GP)的新技术。发现的规则的先例可能涉及许多不同的属性组合。 为了指导搜索过程,我们建议使用同时考虑到规则一致性和完整性的适应度函数。通过使用一对一学习方法,可以将多类分类问题制定为多个两类问题。覆盖策略适用于学习多个规则,如果适用于每个类。随后使用基于最小描述长度(MDL)原理和积分理论的两相修剪方法进行紧凑规则集。 我们的方法也是噪声容忍的,能够处理数字和名义属性。 几个基准数据集的实验表明验证精度提高了20%,此外,与基于规范树的GP分类器相比,所提出的GEP方法更有效率并且倾向于产生更短的解决方案。

    关键词:分类规则,数据挖掘,基因表达规划(GEP),遗传算法(GAs)

一,引言

最近,人们数据挖掘领域的兴趣日益增加,其目标是从观察数据中发现有用的知识。在各种数据挖掘任务中,提取分类规则是一项基本活动。给定一组预定的,不相交的目标类{C1,C2,C3….},一组输入{A1,A2,A3…}和一组训练数据 S,每个实例采用{a1,a2,a3…}的形式,其中ai在属性域中,并与其独特的类别标签有联系。该任务是建立一个setof IF-THEN规则,可以用于在给定其输入的情况下预测新数据的目标类别。Rule induction和 decision tree algorithms 都是传统的应用于从数据中提取分类规则的算法,这些算法可以快速生成相对准确和可理解的规则。然而,缺点是生成的规则通常比必要的更复杂,原因是传统算法执行的局部贪婪搜索一次只能选择一个属性,因此,特征空间由一组超立方体近似。在现实应用中,特征空间通常非常复杂,并且可能需要大量这样的超立方体来近似不同类的集群之间的类边界。
基于遗传算法(GAs)和遗传编程(GP)等进化算法的遗传分类器已被提出作为替代方法,基于自然选择和适者生存的原理,进化算法通过迭代演化染色体群体,通过遗传算子(即选择,交叉和突变)编码候选解决方案,找到最佳解决方案。与大多数传统的规则学习算法不同,遗传分类器执行全局搜索,遗传算子一次可以选择许多属性。可能的解决方案,即候选规则由适应度函数来评估。 然而,遗传分类器的一个缺点是它们通常是计算密集型的。 然而,在离线计算时间不是限制因素的情况下,遗传分类器可能是更可取的。
基因表达规划(GEP)是数据分析的进化算法的新技术。GEP使用固定长度的线性串染色体以不同形状和大小的表达树的形式表示计算机程序,并实现GA以找到最佳程序。GEP可以被认为是基于线性字符串表示的一种专业化的GP。正如我们在本文后面将看到的,GEP结合了GA和GP的优势,同时克服了他们的一些限制。
在本文中,我们提出了采用GEP技术挖掘分类规则的新方法。发现的规则是高阶的,因为规则前提可以在任何逻辑或数学的属性组合中使用。基本思想是将多类问题分解为多个二进制分类问题,然后基于每个类的覆盖策略,使用GEP进行进化搜索,以更好地归纳学习规则。应用最小描述长度(MDL)原理和积分理论来避免过度拟合和消除冗余规则。与典型的基于树的GP方法相比,GEP运行更有效率,并且倾向于产生更短的解决方案。
本文的其余部分组织如下:在第二节中,我们通过进化算法来回顾学习分类规则的相关工作。第三部分包含GEP的简要说明。第四节描述了分类规则发现的GEP方法。然后,我们介绍了GEP和传统GP分类器之间的基准测试和比较研究。最后一节得出结论和一些方向和未来的工作。

二 . 相关工作

作为一种用于数值和符号优化的强大的,独立于领域的机制,已经应用了GAs来形成一套二十多年的生产规则,形成了称为学习分类器系统的机器学习范例。

基于GA的分类器系统通常分为两个基本类:the Michigan approach 和 the Pittsburgh approach. 这两个主要区别在于种群个体的染色体编码方案。 在密歇根方法中,具有固定长度的个体编码生产单个规则。而在匹兹堡方法中,每个人由一个可变长度的字符串表示,并编码一套完整的规则,而在匹兹堡方法中,每个人由一个可变长度的字符串表示,并编码一套完整的规则。

为了减轻这两种方法的缺点,已经提出了一些混合的密歇根/匹兹堡方法,通常,基于GA的分类器中的个体会被编码成二进制字符串,规则的质量由适应性函数来评估,文献中提出的大多数适应性函数都倾向于更准确和可理解的规则。

GP最近受到更多的关注,因为与大多数数据挖掘算法不同,GP可以发现数据中的底层关系,并以输入属性的任何逻辑,数学组合表达它们。 GP操纵可变大小的基因组,因此,与GA相比,可以更好地适应数据库的解决方案结构,因此,GP比GA更开放。但是这带来了成本,即GP在更大的搜索空间中更难以导航。

要为给定的问题开发标准的基于GP的分类器,必须首先定义GP的终端集合和功能集。终端集合通常由所有的输入和随机数发生器组成;函数集可以包含一些数学,比较和逻辑运算符。GP人群中的每个体,即解析树,编码候选规则,目的是通过遗传操作最小化分类错误率,其中通过将GP表达式的输出与给实际值进行比较来进行分类。

对于两类问题,一个GP表达式足以预测给定特征向量是否属于一个类。负和非负输出值之间的划分作为两个类之间的自然边界。以这种方式,对于n类问题,需要确定多个阈值“频带”。然而,在GP表达式可能返回的数值集合上找到有意义的分割点是困难的。存在选择频段的两种方法:静态范围选择和动态范围选择。使用GP解决多类问题的另一个简单且常用的方法是将类问题分解为二进制分类问题,并运行GP次数,每次解决二进制问题,这种方法被称为“二分法”或“一对一学习”。对于每个类,生成一个GP表达式来预测给定实例是否属于该类。

基于GP的分类器也有一些弱点。例如,标准GP的闭包属性要求函数返回的所有变量,常量,参数和值必须是相同的数据类型。当标准GP应用于数字数据的分类问题时,该属性是满意的。一些系统只使用布尔属性或布尔化所有的属性开采,然后应用逻辑运算符以满足闭包属性。已经提出强类型GP(STGP)(有时称为约束语法GP)和基于语法的GP,以通过连续和名义属性GP的混合来解决分类问题时处理此问题。此外,GP基于树的个体通常导致膨胀,即在遗传操作过程中个体大小的不受控制的增长,例如子树交叉和各种突变。可以通过适应度函数和遗传学习算子之间的适当协调来控制腹胀。
有当有适当的协调,搜索可能会成功进展。

三, 基因表达编程概述

与GP一样,使用GEP解决问题时,必须确定五个通用组件,功能集,终端设置,适应度功能,控制参数和停止条件。与规范GP中的分析树表示不同,GEP使用固定长度的字符串来表示计算机程序,后者在评估其适用性时,将其表示为不同大小和形状的解析树(称为“GEP中的”表达式树“)。在繁殖期间,是通过修改再传播到下一代的个体的染色体来繁殖,而不是表达树(ET)。因此,在GEP中,搜索空间与解空间分离,这可以产生诸如无限制地搜索基因组空间的优点,同时仍然确保程序输出的有效性,原始的GEP技术由Ferreira提出,其中GEP染色体可以由一个或多个相等长度的基因组成。 在本文中,我们考虑单基因染色体,并使用如下所述的稍微不同的版本。
A.GEP染色体和ET:
每个GEP染色体由具有固定长度的符号列表组成,其可以是来自功能集和终端集的任何元素。GEP染色体具有固定的长度,这对于给定的问题是预定的。 因此,在GEP中,不同的是染色体的长度,而相应的表达树的大小。这意味着存在一定数量的冗余元素,这对于基因组ET图谱是无用的。因此,K表达的有效长度可以等于或小于染色体的长度。为了保证仅生成合法表达树,原始的GEP技术采用头尾法。每个染色体由头部和尾部组成。头部包含功能集和终端集,而尾部只包含终端。在我们的GEP实现中,我们应用了一个有效性测试程序来动态地检查染色体是否能够在大小限制内编码合法表达式树,而不是使用头尾方法。
B. GEP算法和操作:

像GAs和GP一样,GEP算法以随机生成的染色体的初始群体开始,具有固定长度的线性串。然后,线性染色体表示为ET,并且基于预定义的适应度函数来评估每个个体的适应度。然后根据适应度选择个体以形成新一代,即,适应度值越高,个体必须被选择的机会越多。所选择的个体也可通过遗传算子(如交叉,突变和旋转)进行修饰(稍后将对其进行描述)。而这个新一代人的分化反过来又受到同样的发展过程:表达基因组,选择和繁殖。 该过程重复一定数量的代或直到找到解决方案。

在GEP中,个人经常被选中,并通过轮盘赌轮采样与精英主义的适应性复制到下一代,这保证了下一代最好的个人的生存和克隆。通过在选定的染色体上进行遗传操作引入人群的变异:交叉,突变,回转,来自这些操作者的输出染色体必须通过有效性测试,以确保它们可以在预定义的染色体大小限制内形成有效的表达树。如果由遗传操作者生产的个体没有通过测试,则将重复执行操作者,直到后代通过测试。例如,一个点交叉将重复在相同的父母(而不是无效的染色体)上,但在不同的交叉点,如果任一个孩子没有通过测试。 尽管GEP还可以用冗余的复杂性演变表达式,即可以由产生相同结果的更简单或更小的表达式代替的子表达式,腹胀问题不如传统GP那么严重。 由于K表达的有效长度不超过预定义染色体长度限制,GEP有产生较短程序的倾向。

总之,像GAs一样,GEP中的染色体是线性的,紧凑的,易于遗传操作;像GP一样,演化式计算机程序以表达式的形式表现出一定的功能复杂性。并且染色体和ET的相互转换是非常简单的。此外,与其他线性GP相比,GEP表现出更多的简单性,即用户不需要明确地指定基因型到表型的映射(例如,通过BNF语法)。 由于这些特性,即简单性,高效率和功能复杂性,GEP结合了GAs和GP两者的优势,同时又有一些限制,这提供了解决复杂建模和优化问题的巨大潜力。

四, 通过GEP分类

GEP作为使用GAs的全球搜索技术,具有解决复杂问题的巨大潜力。 使用GEP进行分类的原因如下:
1)灵活性:GEP比传统的规则归纳和决策树算法更灵活,因为它更灵活地重新构建了基础表示。

2)能力:由于使用强大的进化搜索机制,它可以以属性组合的形式发现关系,并以数学方式表达。

3)效率:在固定长度和易于操作遗传操作的染色体线性表示的帮助下,GEP比传统的基于树的GP更有效。

A.一对一学习

对于两类(二进制)问题,GEP表达式通过返回一个正或非正值来表示分类,该值表示给定实例是否属于该类,为了将这种方法扩展到n类分类问题,我们采用经常使用的一对一学习方法将类问题转化为二类问题,这些是通过使用类的示例作为正例和除了作为否定示例的类的示例构成的。

在早期工作中,对于每个类,只有一个规则被演变为识别属于自己的类的实例,并拒绝其他类的实例。 我们已经发现,许多现实世界的问题具有复杂的特征空间,单个规则可能不能对给定类的所有实例进行适当的分类。在本文中,我们应用覆盖策略来为每个二进制分类问题学习多个规则。对于给定训练集中的每个分类,我们学习一个涵盖尽可能多的积极例子和尽可能少的负面例子的规则。然后,我们删除训练集中涵盖的所有积极的例子,并重复程序来学习另一个规则。 重复这些步骤,直到训练集中没有肯定的例子为止。

开发高效分类器还需要考虑两个问题。一个是过度安装噪声数据的问题。在我们的方法中,MDL原则被应用于避免过分具体的规则,试图适应嘈杂的例子。当生成的GEP规则应用于新案例时,会出现另一个问题。多个GEP表达式可能返回一个正值,这将导致“分类冲突”。在最坏的情况下,所有规则可能都不满足。 因此,需要一种解决分类冲突和分类拒绝的策略。 这些问题在本文后面讨论,因为我们解释了两阶段规则修剪的技术。

B.功能集和终端集

对于给定的分类问题,我们需要定义GEP的功能集和终端集。函数集通常由数学和逻辑运算符组成,如果是具有三个参数(x,y,z)的逻辑比较函数,它取值:如果x> 0,则y 否则z。使用该操作,GEP可以操纵分段连续的功能,这对现实世界的分类问题非常有用。

终端机由所有输入属性和常量列表组成,例如{1,2,3,…,n}。 在GP文献中,有两种方法可以将常数值引入到计算机程序中:终端机由所有输入属性和常量列表组成,例如{1,2,3,…,n}。 在GP文献中,有两种方法可以将常数值引入到计算机程序中:一个是使用随机数发生器; 另一个是使用一组常量。 在我们的实现中,我们遵循第二个,它使GEP能够使用常量和函数的给定组合来表示任何有理数。

C.标称属性的数值化

在我们的GEP实现中,所有操作数都被视为数字。执行标称属性数字化有两种方法。一种方法是将标称属性的值映射到整数,以便该属性可以被认为是GEP内的数字。例如,如果属性可以采用三个可能的值,那么这些标称值被映射成一组整数,即{0,1,2}。然而,这种方法的缺点在于它强加了原始数据中不存在的顺序。另一种方法是将名义属性划分为二进制属性,如果有可能的值(这里),其中0/1表示每个值的不存在/存在,则称为“二值化”。这种方法克服了第一整数方法的缺点,但是如果是大的则会产生一大组派生属性。 在本文中,我们使用二值化方法。

D.适应性函数

定义适应性函数来衡量规则质量的问题仍然是数据挖掘中一个有趣的问题。理想情况下,我们应该在适应性函数中包含三个标准,即预测能力,可理解性和兴趣度。在这里,我们专注于寻找准确的规则。 综合完整性的几个公式(规则涵盖的积极例子与培训集中正面例子的总数之比)和一致性(规则涉及的正面例子与覆盖实例总数的比例)已被描述在 文学。我们的方法不是使用一致性度量,而是将规则一致性增益纳入考虑,因为这一措施考虑了训练集中正面和负面实例的分布。 规则的一致性增益定义为

            consig(R)=(p/(p+n)-P/(P+N))*(p+N)/N

其中p和n是由规则R覆盖的正和负的例子的数量,P和N是训练集中的正和负的例子的总数。在规则具有相同分布的正负分布的情况下,示例作为训练集(就像随机猜测),一致性增益为零;在完美一致的情况下,它将返回一个。 一个规则也可能返回一个负的一致性增益,这意味着该规则不如纯粹的随机猜测那么准确。

E.两相规则修剪

为了演化一个准确的,耐噪声和紧凑的规则集,我们应用规则修剪的两个阶段:预修建和后修剪。 对于每个二进制分类任务,理想情况下,覆盖策略通过迭代学习覆盖部分培训示例的规则的过程来工作,直到没有正面的例子为止。然而,如果训练数据不是无噪声的,则该方法可能是不理想的,因为它倾向于产生适合于噪声数据的一些特定规则,但是不概括地将该概念推广到要被很好地学习,从而导致过拟合 。处理这个问题的一个常见方法是早日停止。 在准备进程中,我们采用基于MDL原则的停止标准来确定何时停止学习该类的更多规则。 MDL原则试图避免学习复杂的规则,仅覆盖少量示例,这可能是由嘈杂的数据导致的。

MDL原则的核心思想源于形成理论。准备阶段处理规则学习过程中的噪音。在规则学习过程完成后,对所有课程进行修剪的第二阶段,尝试改进学习理论,解决任何分类冲突和拒绝。一般来说,解决冲突问题有两种方法。 一个是根据他们的信任或质量使无序规则成为有序的列表。例如,Kishore等 提出了一种名为“关联强度”(SA)的措施作为排序一组GP规则的标准。 SA值表示GP表达式可以识别属于其自己类的示例的程度,并拒绝其他类的示例。SA的价值越高,相应规则的预测性能越好。 然后,具有最高关联强度的GP表达式的类将被分配给输入案例。 另一种方法也考虑规则质量,但是通过整套规则,将同一类的匹配规则的质量相结合,并将新的示例分配给合并质量最大的类。 例如,CN2无序规则归纳算法[10]遵循这种方法。

由于我们方法中使用的适应度函数已经考虑了规则的一致性,完整性以及类的分布,因此它为排序GEP规则提供了一个自然的标准。我们采取了以下冲突策略解决和修剪冗余规则,遵循提到的方案和整合理论:

1.根据其适合度值对所有生成的规则进行排序。

2.选择具有最高适应度值的规则,并将其添加到有序规则集中。

3.删除所选规则覆盖的所有正面和负面示例。

4.重新计算其余例子中剩余规则的适应度值。

5.重复步骤1-4,直到不存在任何示例,或者直到剩余的规则都没有产生正的适合度值。

6.选择一个默认类,以防所有规则拒绝新的示例。

选择默认类的方法再次遵循C4.5规则归纳算法的使用方式。对于每个训练示例,通过步骤1-5生成的有序规则按此顺序逐个应用,直到其中一个被触发。我们只考虑所有GEP表达式不能返回正值的示例,并选择具有最大数量的未分类示例的类作为默认类,在培训中解析具有较大数量实例的类的关联 组。经过这个postpruning过程,消除了冗余规则。 最终规则集紧凑且有序。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值