遗传编程 - 健身功能

ale*_*ale 8 artificial-intelligence machine-learning genetic-programming genetic-algorithm

假设我有一组训练示例,其中A_i是属性,结果是二进制(是或否):

A1,             A2,             A3,             Outcome
red             dark            large           yes
green           dark            small           yes
orange          bright          large           no
Run Code Online (Sandbox Code Playgroud)

我知道我必须定义适应度函数.但这个问题是什么呢?在我的实际问题中有10个参数和100个训练示例,但这是一个类似的问题.

Joh*_*dol 6

我认为这里的混乱,是因为我们平时的健身功能,还给你一些标来了,有时一个离散的规模,但从来没有一个二进制是/否(或真/假).从这个意义上说,这看起来更像是一个用神经网络(或可能是贝叶斯逻辑)解决的"分类"问题.这么说,你当然可以设计一个遗传算法来进化任何类型的分类器,并且适应度函数基本上将表示为对总评估的正确分类.

另一种纯粹的GA方法 - 可能与问题更相关 - 是将整个分类规则集编码为遗传算法的给定个体.在这个意义上,适应度函数可以表示为标量,表示手头的给定候选解决方案在总数上有多少是/否分类,等等.本文使用实值遗传:算法演化R,de集合进行分类,可以找到类似的方法.

示例(对此进行编码的可能方法之一):

A1,             A2,             A3,             Outcome
red             dark            large           yes
green           dark            small           yes
orange          bright          large           no
Run Code Online (Sandbox Code Playgroud)

编码:红= 000,暗= 001,大= 010,绿色= 011,小= 100,橙= 101,明亮= 111,等.结果:是= 1,无= 0

染色体:

A1,             A2,             A3,             Outcome
000             001             010             1
011             001             100             1
101             111             010             0
Run Code Online (Sandbox Code Playgroud)

所有上述内容都被转换为候选解决方案:

000001010-1/011001100-1/101111010-0
Run Code Online (Sandbox Code Playgroud)

您将通过测试整个规则集的适应性(规则集中的正确分类/总分类)来生成随机的一组这些并以您喜欢的方式进化它们(请小心选择您的交叉策略!).

我还建议你听二元独奏,让你心情愉快.

注意:我非常怀疑这将适用于由3个规则组成的规则集,而不是GA的广度.