独家 | 简单三步实现Python脚本超参数调优(附代码)
作者:Jakub Czakon, Neptune.ai
翻译:陈之炎
校对:和中华
本文约1500字,建议阅读5分钟。
Python机器学习模型建立起来之后,如何对它的性能进行优化?按照本指南中的三个步骤可以对任意优化库设置自动调优。
在编写完成一个Python脚本之后,便可以用它训练和评估机器学习模型了,现在,问题来了,是否能对它自动调整超参数以提高其性能呢?
自有办法!
在本文中,将展示如何将脚本转换为可以用任何超参数优化库优化的目标函数。
只需要三个步骤,便可实现模型的参数调整。
准备好了?
那就开始吧!
假设main.py 脚本如下所示:
第1步:从代码中解耦出搜索参数
提取想要调整的参数,将它们放在脚本顶部的字典中,这样做之后,便可以有效地将搜索参数与代码的其余部分解耦。
第2步:将训练和评估打包为一个函数
现在,可以将整个训练和评估逻辑放在 train_evaluate函数的内部。此函数以参数为输入,输出验证分数。
第3步:运行超参数调整脚本
快要实现了。
现在,利用train_evaluate函数作为选定的黑盒优化库的目标。
本例采用Scikit Optimize实现优化,我在另一篇文章中,对此作了详细描述,同时,你也可以使用其它超参数优化库。
Scikit Optimize
https://neptune.ai/blog/scikit-optimize
总之:
定义搜索空间,
创建目标函数以对它最小化,
通过forest_minimize函数运行优化。
在这个例子中,我随机选定了10个参数集,尝试了100种不同的配置下的调优。
这就是全部过程。
result对象包含有关最佳分数和对应参数的信息。
注:如果想在训练结束后进行可视化,并保存诊断图表,那么可以向Neptune中添加一个回调函数和一个记录每次超参数搜索的函数。只需调用库中 helper function from neptune-contrib。
helper function from neptune-contrib
https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2&action=edit&isNew=1&type=10&token=832229466&lang=zh_CN#NeptuneMonitor
现在,运行参数扫描时,可以看到以下内容:
查看代码、图表和结果中的skopt hyperparameter sweep experiment。
skopt hyperparameter sweep experiment
https://ui.neptune.ai/jakub-czakon/blog-hpo/e/BLOG-369/charts
结语
在本文中,我们学习了如何通过3个步骤对 Python脚本的超参数进行优化。
希望有了这些知识,你能更便捷地建立更优的机器学习模型。
相关文献:
超参数优化实战
如何自动实现超参数优化
用Google Colab的Hyperas实现 Keras超参数调优
原文标题:
How to Do Hyperparameter Tuning on Any Python Script in 3 Easy Steps
原文链接:
https://www.kdnuggets.com/2020/04/hyperparameter-tuning-python.html
如您想与我们保持交流探讨、持续获得数据科学领域相关动态,包括大数据技术类、行业前沿应用、讲座论坛活动信息、各种活动福利等内容,敬请扫码加入数据派THU粉丝交流群,红数点恭候各位。
编辑:王菁
校对:林亦霖
译者简介
陈之炎,北京交通大学通信与控制工程专业毕业,获得工学硕士学位,历任长城计算机软件与系统公司工程师,大唐微电子公司工程师,现任北京吾译超群科技有限公司技术支持。目前从事智能化翻译教学系统的运营和维护,在人工智能深度学习和自然语言处理(NLP)方面积累有一定的经验。业余时间喜爱翻译创作,翻译作品主要有:IEC-ISO 7816、伊拉克石油工程项目、新财税主义宣言等等,其中中译英作品“新财税主义宣言”在GLOBAL TIMES正式发表。能够利用业余时间加入到THU 数据派平台的翻译志愿者小组,希望能和大家一起交流分享,共同进步。
翻译组招募信息
工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。
你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。
其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。
点击文末“阅读原文”加入数据派团队~
转载须知
如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。
发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。
点击“阅读原文”拥抱组织
独家 | 简单三步实现Python脚本超参数调优(附代码)相关推荐
- python minimize_简单三步实现Python脚本超参数调优(附代码)
作者:Jakub Czakon, Neptune.ai 翻译:陈之炎 校对:和中华 本文约1500字,建议阅读5分钟. Python机器学习模型建立起来之后,如何对它的性能进行优化?按照本指南中的三个 ...
- 简单三步实现Python脚本超参数调优(附代码)
在编写完成一个Python脚本之后,便可以用它训练和评估机器学习模型了,现在,问题来了,是否能对它自动调整超参数以提高其性能呢? 自有办法! 在本文中,将展示如何将脚本转换为可以用任何超参数优化库优化 ...
- 贝叶斯优化原理及应用[附XGBoost、LightGBM超参数调优代码][scikit-optimize]
近年来机器学习和深度学习算法被越来越广泛的应用于解决对未知数据的预测问题.由于超参数的选择对模型最终的效果可能有极大的影响,为了使模型达到更好的效果,通常会面临超参数调优问题.但如何选择合适的超参数并 ...
- 深度神经网络之Keras(三)——正则化、超参数调优和学习方向
深度神经网络之Keras(三)--正则化.超参数调优和学习方向 本文将继续探索Keras框架下的深度神经网络知识,主要介绍了利用Keras构建的深度神经网络正则化及超参数调优问题. 目录 深度神经网络 ...
- Python的数据分析中超参数调优方法:网格搜索
[小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ● 标题与摘要 Python的数据分析中 超参数调优方法:网格搜索 ● 选择题 以下说 ...
- python代码设置超参数_超参数调优总结,贝叶斯优化Python代码示例
本文介绍超参数(hyperparameter)的调优方法. 神经网络模型的参数可以分为两类,模型参数,在训练中通过梯度下降算法更新: 超参数,在训练中一般是固定数值或者以预设规则变化,比如批大小(ba ...
- 贝叶斯优化python包_《用贝叶斯优化进行超参数调优》
TPE CMAES 网格搜索 随机搜索 贝叶斯优化 用贝叶斯优化进行超参数调优 @QI ZHANG · JUL 12, 2019 · 7 MIN READ 超参数调优一直是机器学习里比较intract ...
- tf.saved_model.save模型导出、TensorFlow Serving模型部署、TensorBoard中的HParams 超参数调优
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 4.11 综合案例:模型导出与部署 学习目标 目标 掌握Ten ...
- 贝叶斯优化: 一种更好的超参数调优方式
简介 本文受 浅析 Hinton 最近提出的 Capsule 计划 启发,希望以更通俗的方式推广机器学习算法,让有数学基础和编程能力的人能够乐享其中. 目前人工智能和深度学习越趋普及,大家可以使用开源 ...
最新文章
- ORA-01113 file 1 needs media recovery
- AAAI2021论文:一个激光雷达点云的3D目标单步检测法CIA-SSD
- oracle 从dbf恢复,oracle 误删 dbf 恢复
- 机器学习笔记(十)降维和度量学习
- 【笔记】SFTP、ssh密钥连接远程服务器,putty工具生成密钥,详细图文教程
- 几种网站后门排查 不全面
- 机器学习实战-集成学习-23
- [Qt教程] 第47篇 进阶(七) 定制Qt帮助系统
- 如何使用代码区分service contract和service contract quotation
- 小二,先来两桂花豆沙包!
- python浅拷贝的说法_Python中List的复制(直接复制、浅拷贝、深拷贝)
- 2019年Java开发者进阶手册.pdf
- 53 MM配置-评估和科目设置-定义评估控制
- 荣耀V40屏幕素质得到“认证”:120Hz高刷屏没跑了
- stc12c5a60s2制作4*4*4,光立方c语言程序怎么写,基于STC12c5a60s2单片机的3D显示屏设计...
- 信号与系统学习笔记与代码实现3-周期信号的傅里叶级数表示
- 手机tim邮箱服务器密码错误,qq邮箱登录失败显示session timeout解决方法
- js 骂人不带脏字 (!(~+[]) + {})[--[~+][+[]] * [~+[]] + ~~!+[]] + ({} + [])[[~!+[]] * ~+[]] 图解...
- 计算机专业设计(论文)内容及要求,简述计算机专业毕业论文的撰写要求
- 微信html5 支付接口,黄聪:详解申请微信h5支付方法,开通微信h5网页支付接口(转)...
热门文章
- SIM300实现GPRS上网
- zoomImg相册大图预览插件
- nginx日志通过rsyslog传入到日志服务器指定目录
- 信息安全系统设计基础第3周学习总结
- 24 UsageEnvironment使用环境抽象基类——Live555源码阅读(三)UsageEnvironment
- Windows Phone本地数据库(SQLCE):5、[Association]attribute(翻译)(转)
- 在WCF中实现双工通信(转载)
- 51CTO交流摘录(2):SOC的应用现状
- .NET Micro Framework常见问题问答
- iPhone开发四剑客之《iPhone开发秘籍》