Skip to main content
 Web开发网 » 编程语言 » Python语言

简单三步实现Python脚本超参数调优(附代码)

2021年11月28日10490百度已收录

简单三步实现Python脚本超参数调优(附代码)  Python脚本 第1张

作者:Jakub Czakon, Neptune.ai

翻译:陈之炎

校对:和中华

本文约1500字,建议阅读5分钟。

Python机器学习模型建立起来之后,如何对它的性能进行优化?按照本指南中的三个步骤可以对任意优化库设置自动调优。

简单三步实现Python脚本超参数调优(附代码)  Python脚本 第2张

在编写完成一个Python脚本之后,便可以用它训练和评估机器学习模型了,现在,问题来了,是否能对它自动调整超参数以提高其性能呢?

自有办法!

在本文中,将展示如何将脚本转换为可以用任何超参数优化库优化的目标函数。

简单三步实现Python脚本超参数调优(附代码)  Python脚本 第3张

只需要三个步骤,便可实现模型的参数调整。

准备好了?

那就开始吧!

假设main.py 脚本如下所示:

简单三步实现Python脚本超参数调优(附代码)  Python脚本 第4张

第1步:从代码中解耦出搜索参数提取想要调整的参数,将它们放在脚本顶部的字典中,这样做之后,便可以有效地将搜索参数与代码的其余部分解耦。

简单三步实现Python脚本超参数调优(附代码)  Python脚本 第5张

第2步:将训练和评估打包为一个函数现在,可以将整个训练和评估逻辑放在 train_evaluate函数的内部。此函数以参数为输入,输出验证分数。

简单三步实现Python脚本超参数调优(附代码)  Python脚本 第6张

第3步:运行超参数调整脚本快要实现了。

现在,利用train_evaluate函数作为选定的黑盒优化库的目标。

本例采用Scikit Optimize实现优化,我在另一篇文章中,对此作了详细描述,同时,你也可以使用其它超参数优化库。

Scikit Optimize

总之:

定义搜索空间,创建目标函数以对它最小化,通过forest_minimize函数运行优化。在这个例子中,我随机选定了10个参数集,尝试了100种不同的配置下的调优。

简单三步实现Python脚本超参数调优(附代码)  Python脚本 第7张

这就是全部过程。

result对象包含有关最佳分数和对应参数的信息。

注:如果想在训练结束后进行可视化,并保存诊断图表,那么可以向Neptune中添加一个回调函数和一个记录每次超参数搜索的函数。只需调用库中 helper function from neptune-contrib。

helper function from neptune-contrib

简单三步实现Python脚本超参数调优(附代码)  Python脚本 第8张

现在,运行参数扫描时,可以看到以下内容:

简单三步实现Python脚本超参数调优(附代码)  Python脚本 第9张

查看代码、图表和结果中的skopt hyperparameter sweep experiment。

skopt hyperparameter sweep experiment

结语在本文中,我们学习了如何通过3个步骤对 Python脚本的超参数进行优化。

希望有了这些知识,你能更便捷地建立更优的机器学习模型。

相关文献:

超参数优化实战

如何自动实现超参数优化

用Google Colab的Hyperas实现 Keras超参数调优

原文标题:

How to Do Hyperparameter Tuning on Any Python Script in 3 Easy Steps

原文链接:

编辑:王菁

校对:林亦霖

译者简介

简单三步实现Python脚本超参数调优(附代码)  Python脚本 第10张

陈之炎,北京交通大学通信与控制工程专业毕业,获得工学硕士学位,历任长城计算机软件与系统公司工程师,大唐微电子公司工程师,现任北京吾译超群科技有限公司技术支持。目前从事智能化翻译教学系统的运营和维护,在人工智能深度学习和自然语言处理(NLP)方面积累有一定的经验。业余时间喜爱翻译创作,翻译作品主要有:IEC-ISO 7816、伊拉克石油工程项目、新财税主义宣言等等,其中中译英作品“新财税主义宣言”在GLOBAL TIMES正式发表。能够利用业余时间加入到THU 数据派平台的翻译志愿者小组,希望能和大家一起交流分享,共同进步。

—完—

想要获得更多数据科学领域相关动态,诚邀关注清华-青岛数据科学研究院官方微信公众平台“ 数据派THU ”。

评论列表暂无评论
发表评论
微信