文档介绍:基于遗传算法的分类器设计
冯利美
E-mail: fenglimei1981@
主要内容
目标概念的表示
搜索空间的表示
遗传操作
适应度函数
系统地执行过程
实验结果
参考文献
用遗传算法做分类问题,就是找到一组能很好拟合训练样例的IF-THEN规则(目标概念)。学****过程可看作一个搜索过程,就是在假设空间中搜索目标概念。目标概念的表示通常有两种:
Michigan方法
一条染色体表示一条规则,种群中的各条规则互相竞争。整个种群表示一个目标概念。 Pittsburgh方法
每条染色体是由一组定长的规则组成,代表一个侯选概念。
返回
目标概念的表示
搜索空间的表示一
这里的搜索空间,就是侯选假设空间,遗传算法中的假设常被表示成二进制位串,编码方式确定了,假设空间也就相应定了.
把if-then规则编码成位串
, 取值有三个:Sunny、Overcast、Rain. 使用一个长度为3的位串,每位对应一个可能值,若某位为1,表示这个属性可以取对应的值
多个属性约束的合取表示为各个属性对应位串的连接
整个规则表示为规则前件和后件位串的连接
搜索空间的表示二
比如一条规则:
If (Outlook=Sunny) and (Temperature=Hot) and (Humidity=High) and (Wind=Weak or Strong) then PlayTennis=No
二进制编码形式为:100100101101
返回
联赛选择算子
由于传统的比例算子容易发生早熟现象,而联赛选择算子的局部搜索能力比较强,所以并没有采用常用的比例选择算子公式,而采用了该算子,操作思想:从群体中任意选择一定数目的个体(称为联赛规模),其中适应度最高的个体保存到下一代,这一过程反复进行,直到保存到下一代的个体数目达到群体规模。
两点交叉算子一
它是基本两点交叉算子的一个扩展。为了适应编码规则集的位串长度可变性,并且限制系统以使交叉发生在位串的相似片段间,采用下面方法:
在第一个双亲串上随机选取两个交叉点,它们之间划分出了一个位串片段。这两个交叉点可能取在了两条规则中。
令d1表示第一个交叉点到它左侧第一个规则边界的距离。d2表示第二个交叉点到它左侧第一个规则边界的距离。在第二个双亲上随机选取交叉点,要求选择的交叉点具有同样d1和d2值。
例如:如果两个双亲串是:
两点交叉算子二
并且为第一个双亲h1选取交叉点位置是第1位和第9位,那么d1=1并且d2=3。允许选取第二个双亲交叉点的位置有<1,3>,<1,9>和<7,9>。如果恰巧选取了<1,3>,如下所示:
那么结果生成的两个后代是:
两点交叉算子三
如此例所示,这种交叉方法中后代可以包含与双亲不同数量的规则,同时保证了按这种方式产生的位串表示良定义的(well-defined)规则集。需要说明的是,交叉算子的交叉点不能落在决策属性的编码位串中,否则规则的决策属性位串中不止一个1或者全0,规则将不符合语义,成为一条无效规则。
变异算子
变异操作是对标准遗传算法的变异算子做了一个约束,因为决策属性比较特殊,它的位串中只能有一位是1,大于1或全0不符合语义,无法对规则做出解释,所以决策属性的位串不参与变异操作。
, ,
返回