8

比方说,我有一组的训练实例,其中A_I是一个属性,结果是二进制(是或否):遗传编程 - 健身功能

A1,    A2,    A3,    Outcome 
red    dark   large   yes 
green   dark   small   yes 
orange   bright   large   no 

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

+3

我给每个了解实际问题的人5美元。 – Spyros 2011-04-17 11:38:24

+3

@SpyrosP,我会给你我的贝宝信息;)。我明白他在问什么,虽然我没有答案......但 – Prescott 2011-04-17 11:40:13

+0

:哦,你真的认为?请解释一下! – Spyros 2011-04-17 11:42:12

回答

6

我认为这里的困惑来自这样一个事实,即通常的健身功能会给你一些标量,有时候是离散的,但从不是二进制是/否(或真/假)。从这个意义上讲,这看起来更像是一个需要用神经网络(或者贝叶斯逻辑)解决的“分类”问题。这样说,你当然可以设计一个GA来演化任何类型的分类器,并且适应度函数基本上可以用正确的分类来表示,而不是整个评估。

对此的另一个纯GA方法 - 可能与问题更相关 - 是将整个分类规则集作为遗传算法的给定个体编码在。从这个意义上讲,适应度函数可以表示为一个标量,表示给定的候选解决方案在总数上有多少是/否分类,等等。类似的方法可以在本文中找到Using Real-Valued Genetic: Algorithms to Evolve R,de Sets for Classification

实施例(的可能的方式来编码这一个):

A1,    A2,    A3,    Outcome 
red    dark   large   yes 
green   dark   small   yes 
orange   bright   large   no 

编码:红= 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 

的上述所有被转换为一个候选解决方案为:

000001010-1/011001100-1/101111010-0 

你会产生这些随机的一群,发展他们无论怎样,你通过(在规则集正确分类/总分类)测试健身整个规则集的(这里要小心选择你的交叉战略喜欢! )。

我还建议你听一听binary solo,让你心情愉快。

注意:我很怀疑这将与 3的规则,没有足够广度的GA组成的规则集工作。

+0

@JohnIdol谢谢你的答案。如果我选择使这三个例子分别为100101010,010100110,001010101的染色体设计(因此第一个例子是100,因为第一个属性是红色,后面是10,因为第二个属性是黑色,后面是10,因为第三个属性很大10,因为这是一个'是'的例子),那么你认为你可以拿出适用于其中一个例子的适应度函数,这样我可以看到你的意思更好吗?我也会看看这篇论文。 +1为此感谢你:)。 – ale 2011-04-17 15:10:46

+0

轻微校正:适用于初始随机假设的适应度函数。我可以做一个:010101010. – ale 2011-04-17 15:21:06

+1

我用一个例子编辑了答案。是的,你会生成一堆随机的二进制字符串,并将它们提供给GA。希望这可以帮助! – JohnIdol 2011-04-17 15:39:35