遗传算法与强化学习:原理、应用及实践
1. 遗传算法基础
1.1 表达式结构与操作
遗传算法的表达式由属性、属性值以及逻辑运算符(合取、析取和否定)组成,这种结构很自然地可以用树结构来表示。树的内部节点代表逻辑操作,叶子节点包含属性 - 值对。重组操作会随机交换子树,而变异操作可以影响叶子节点,可能改变属性名、属性值或两者,还可能偶尔将合取运算符(^)与析取运算符(_)互换。
1.2 初始种群生成
在生成初始种群时需要特别注意,程序员要确保种群中已经包含一些有前景的表达式。一种方法是创建一组随机表达式,并将正例的描述插入其中。生存函数(需要最大化)可以定义为训练集上的分类准确率。
1.3 相关思考问题
为了确保理解该主题,可以思考以下问题:
- 达尔文进化过程和拉马克进化过程有什么区别?哪个更快?
- 多种群遗传算法解决了什么弱点?多个种群是如何解决这个问题的?
- 如果染色体是由位、数值和符号组成的“混合”字符串,如何实现变异运算符?
- 在染色体为树数据结构的领域中,如何实现重组和变异运算符?
2. 遗传算法在 k - NN 分类器中的应用
2.1 问题背景
k - NN 分类器的成功依赖于存储示例的质量以及描述这些示例的属性选择。选择合适的示例和属性的问题可以很容易地转化为搜索问题。例如,初始状态可以定义为完整的示例集和完整的属性集,搜索运算符将移除示例和/或属性,评估函数(需要最小化)可以定义为在独立测试示例集上通过 1 - NN 规则达到的错误率。
超级会员免费看
订阅专栏 解锁全文
2900

被折叠的 条评论
为什么被折叠?



