网站首页 > 技术文章 正文
训练结果
筛选后的遗传算法结果:
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。
猜你喜欢
- 2024-12-05 一文彻底搞懂自动机器学习AutoML:TPOT
- 2024-12-05 中安表单识别AI训练平台的识别准确率是否可以通过测试来验证?
- 2024-12-05 基于LIBS技术的煤炭灰分、挥发分和热值定量分析及特征工程研究
- 2024-12-05 样本分布不平衡,机器学习准确率高又有什么用?
- 2024-12-05 详解3类「人工智能数据集」,数据划分原则,交叉验证法
- 2024-12-05 交叉验证(Cross-Validation)
- 2024-12-05 AI实践 100问:训练集、验证集、测试集
- 2024-12-05 scikit 模型堆叠,
- 2024-12-05 机器学习中必学的四种交叉验证技术
- 2024-12-05 python机器学习:机器学习模型评价-交叉验证与留一验证
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)