优秀的编程知识分享平台

网站首页 > 技术文章 正文

快乐8第24272期训练与验证

nanyue 2024-12-05 15:07:38 技术文章 8 ℃

训练结果

筛选后的遗传算法结果:

Evaluation score for the best individual: 0.018247734038343833

Test set score for the best model: 0.0032449346184304576

[3, 16, 31, 38, 8, 79, 49, 43, 71, 17, 69, 39, 57, 13, 41, 37, 75, 18, 27, 33]

全量遗传算法:

Evaluation score for the best individual: 0.02107615540020464

Test set score for the best model: 0.019264940800585828

[32, 72, 7, 46, 71, 6, 9, 12, 36, 28, 21, 41, 18, 25, 39, 48, 54, 63, 13, 40

结果

筛选后的遗传算法:1中1,3中2,5中3,7中4

全量遗传算法:一个没中

总结:

Evaluation score for the best individual与 Test set score for the best model差距越大越好。

太郁闷了,

昨天的全量特征训练前四今天中了,可惜了,,,可能模型太超前了?不知道咋用了。。。

在遗传算法中,n_gen 和 pop_size 的设置需要根据具体问题的复杂度以及计算资源来决定。

1. n_gen (Number of Generations): 表示进化的代数,代表遗传算法的迭代次数。

2. pop_size (Population Size): 表示每一代的个体数量,代表当前代中可选的特征组合和参数集合。

如何设置 n_gen 和 pop_size:

n_gen(进化代数):

一般推荐范围:20-100。

设置依据:

如果有充足的计算资源(如 GPU 计算),可以增加 n_gen,以探索更大的搜索空间。

通常来说,较多的代数(比如 50 或以上)能更全面地搜索解空间,逐渐优化出最优个体。

但是,如果代数过多,计算量可能会显著增加,尤其是在每个个体的评估都很耗时的情况下。

pop_size(种群大小):

一般推荐范围:20-100。

设置依据:

较大的 pop_size 可以增加多样性,探索更广泛的解空间,有助于找到全局最优解,但会增加每一代的计算成本。

较小的 pop_size 可能导致算法过早收敛,陷入局部最优。

建议的设置方案

一般情况:

如果问题规模适中(如特征数量不超过 100,计算资源有限),可以尝试:

n_gen = 30 和 pop_size = 50

这种设置能在合理的时间内得到比较好的结果。

如果计算资源充足,可以尝试更大的种群和代数,例如:

n_gen = 50-100 和 pop_size = 100

这种设置能够更全面地探索解空间,提高找到全局最优的概率,但代价是更长的计算时间。

平衡计算时间和效果

遗传算法的计算量与 n_gen * pop_size 成正比,每一代的个体评估次数等于 pop_size,评估每个个体时又涉及模型的多次训练和验证(比如 5 折交叉验证)。

如果发现计算量过大,可以适当减少 pop_size 或 n_gen。

总结

起点推荐:n_gen = 30,pop_size = 50。

计算资源充足时:n_gen = 50-100,pop_size = 100。

最近发表
标签列表