- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于遗传算法的特征选择研讨
基于遗传算法的特征选择; What
Why
How;回答什么是遗传算法?什么是特征选择?
遗传算法是模拟进化论,搜索优化问题最优解的一种算法。它采用群体搜索策略,一代一代逐步进化,直到收敛到问题的最优解。
群体是个体的集合,个体模拟一个问题的一个解。
关键问题:
个体如何表示?
方法:问题编码
如何产生下一代?
方法:遗传操作
如何评价种群的质量?
方法:适应度函数;什么是特征选择?
就是从一个特征集合中选择一个最优子集。;遗传算法流程图;1. 问题编码
对于特征选择问题,问题编码很简单,采用0-1编码即可。
任何一个n元0-1串,都表示问题的一个解。
2. 如何产生下一代
通过选择、交叉、变异三种遗传操作产生下一代,前两种操作每一次都要用的,而第三种则不一定,但没有规则。
选择是用来选择交叉的父本,交叉(模拟有性繁殖)产生新的个体,变异是某一位的变异。
3.如何评价种群的质量
适应度函数设计,对于特征选择问题可采用如下的类别可分离性准则,设计适应度函数。;适应度函数为;Iris数据库;选择的特征子集应使类内散度尽可能小,而使类间散度尽可能大.
设xk(i)和xl(j)分别为?i类和?j类中的D维特征向量,?(xk(i) , xk(j))为这两个向量间的距离,则类间平均距离为:;其中,Pi和Pj为先验概率。
通常采用欧氏距离:;定义 类间散度矩阵Sb的估计为:;Q1 初始种群的产生
主要涉及到:(1)群体的规模N;(2)初始化种群。
种群的规模
N越大,种群的多样性越好,GA陷入局部极小的可能性越小。但N太大,计算量会很大,收敛速度也会降低。N太小,GA搜索的空间被限制在一个较小的范围内,可能导致早熟。
应根据问题的维数和难度来设定N,一般地,维数和难度越高,N应越大。建议N一般取为几十到几百之间。
初始化种群
一般用随机化方法产生。;(a) 选择(Selection)算子
依据每个染色体的适应值大小,适应值越大,被选中的概率就越大,其子孙在下一代产生的个数就越多。
选择操作是建立在群体中个体的适应值评估基础上的,目前常用的选择算子有赌轮选择方法、保留最佳个体选择法、期望值选择方法等。;(a.1) 赌轮方法
(准备步)
(S1) 按如下公式计算种群中每个个体xi被选择的概率。; (选择步)
根据选择概率,将圆盘形的赌轮分成N个扇形,第i个扇形的中心角为2?pi。在进行选择时,可以假想随机转到一下赌轮,若参照点落入第r个扇形内,则选择xr,这样重复选择N次即可。
上述方法可用如下计算机方法模拟。将[0, 1]区间分成长度为p1, p2, …, pN的小区间。按均匀分布在[0, 1]中产生一个随机数,这个数属于哪个小区间,就选出对应的个体。如此重复N次即可。
具体步骤如下:;赌轮方法选择步骤
STEP1:按公式(E4)计算累加概率。
STEP2:重复以下两步N次
STEP2.1:产生[0, 1]中的一个随机数r;
STEP2.2:若r?q1,则选择x1;否则,若qi-1?r?qi,则选择xi。;(a.2) 保留最佳个体选择方法
将到目前为止,得到的M个最佳个体直接保留到下一代种群中,其余N-M个个体可按其他方法选择产生。;期望值方法选择步骤
STEP1:按下式计算每个个体在下一代生存的期望个数。;(b) 交叉(Crossover)算子
以概率pc选择参与交叉的个体,并将选出的个体两两配对。每一对用单点交叉或两点交叉产生两个后代。如有两个用二进制编码的个体A和B。
交叉前后为:
A=a1a2a3|a4a5 A=a1a2a3|b4b5
B=b1b2b3|b4b5 B=b1b2b3|a4a5
(父代) (子代)。;(c) 变异(Mutation)算子
变异增加了遗传算法找到接近最优解的能力。变异就是以很小的概率pm,随机地改变字符串某个位置上的值。把某一位的内容进行变异。
在二进制编码中,就是将某位0变成1,1变成0。
如:110010的第四位变异成110110
(父代) (子代);Q2 控制参数的选择
参数主要有个体编码长度m、群体大小N、选择率ps、交叉概率pc、变异概率pm、终止代数T等。
这些参数对遗传算法的运行影响很大,需要认真选择。;The end
原创力文档


文档评论(0)