Python Deap GP评估个人原因错误

时间:2016-12-02 07:17:04

标签: python-3.x genetic-programming deap evaluation-function

每当我尝试使用DEAP的GP部分评估个人时,我目前遇到问题。

我收到以下错误:

  

追踪(最近一次通话):     文件" ImageGP.py",第297行,in       pop,logs = algorithms.eaSimple(pop,toolbox,0.9,0.1,60,stats = mstats,halloffame = hof,verbose = True)     文件" /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/deap/algorithms.py",第148行,在eaSimple中       对于ind,适合zip(invalid_ind,fitnesses):     文件" ImageGP.py",第229行,在evalFunc中       func = toolbox.compile(expr = individual)     文件" /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/deap/gp.py" ;,第451行,在编译中       return eval(code,pset.context,{})     文件"",第1行       lambda oValue,oAvg13,oAvg17,oAvg21,sobelVal(v),sobelVal(h),edgeVal,blotchVal:[[[0,75,82.2857142857,83.0,82.9090909091,4,12,4,180],...继续打印出我的所有数据... [0,147,151.244897959,150.728395062,150.73553719,248,244,5,210]]]                                                  ^   SyntaxError:语法无效

如果有人对可能导致此问题的原因有任何想法,那么我真的很感激一些建议。我目前的评估函数如下所示:

def evalFunc(individual, data, points):
    func = toolbox.compile(expr=individual)
    total = 1.0

    for point in points:
        tmp = [float(x) for x in data[point[1]][point[0]][1:9]]
        total += int((0 if (func(*tmp)) < 0 else 1) == points[2])

    print ("Fitness: " + str(total))
    return total,

数据包含正在使用的数据(错误中列出的8个变量的值)和指定x和y坐标的点,从中获取这8个值。谢谢你的建议!

0 个答案:

没有答案