0

我在 pyevolve 申请 GP 进行训练,它给了我最好的树。我想用这棵树来测试不同的数据。我想保持min是树的根,所以如果 gp_add、gp_mul... 是树的根,函数将返回 -1。

这是关于我最好的树的例子,原始分数是 1.0143

gp_min(gp_add(gp_mul(gp_min(a, b), c), d))

这就是代码,我尝试在测试数据中应用最好的个体。

bestIndi = ga.bestIndividual()
comp_code = bestIndi.getCompiledCode()
score = eval(comp_code)

这段代码方向正确吗?为什么分数总是-1?

4

1 回答 1

0

那是在正确的道路上。GP 中的一个主要属性是充分性属性,它表示域中的元素应该足以解决问题。

检查变量的范围。

如果想保持 min 作为树的根,最好将它应用到适应度函数中,但是,如果 GP 找到的个体比以 gp_min 作为根的个体更好,那么最好消除该限制。

于 2013-10-10T00:13:17.247 回答