gpt4 book ai didi

python - DEAP 框架 - 使用每个基因统计数据的 mutGaussian

转载 作者:行者123 更新时间:2023-12-01 08:48:43 28 4
gpt4 key购买 nike

我有一个人具有以下基因:

genes = [8, 2, 300, 2, 25, 10, -64, -61]

然后我应用以下高斯突变:

toolbox.register("mutate", tools.mutGaussian, mu=0, sigma=1, indpb=1)
toolbox.mutate(genes)

产生新基因:

[9, 4, 301, 2, 24, 9, -65, -60]

我对这个突变的问题是,这个个体的高斯统计数据似乎是使用所有基因而不是每个基因来确定的......虽然大多数基因的 +/- 2 突变很好,但该值从300开始应该会发生更大的变化。

令我感到奇怪的是,docs 中没有考虑到这种需求。 .

是否没有内置机制可以使用每个基因的统计数据来突变个体?

我假设使用其所有基因为群体中的每个个体形成一个分布。我想要的是使用群体中的所有个体为每个基因形成一个分布。

最佳答案

您可以将sigma设置为列表而不是 float 。这样,如果每个基因取自不同的范围,您可以调整 sigma 值以更好地适应每个基因取的值。

如果您事先不知道哪些基因会比其他基因更大,您可以实现自己的突变功能。例如,您可以将高斯的 sigma 设置为取决于基因的值:

def mutGaussian(individual, sigma, indpb):
for i in range(len(individual)):
if random.random() < indpb:
individual[i] = random.gauss(individual[i], sigma*individual[i])

return individual,

关于python - DEAP 框架 - 使用每个基因统计数据的 mutGaussian,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53218243/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com