我正在尝试复制此链接中报告的超参数优化示例,但我希望在我的培训应用程序中使用scikit学习XGBoost而不是tensorflow。
我能够在一个工作中运行多个测试,针对每一个超参数组合。但是,metric返回的培训输出对象不包括finalMetric字段,即报告度量信息(请参见下图中的差异)。
我从上面链接的例子中得到了什么:用Tensorflow训练应用程序训练输出对象
使用XGBoost运行培训应用程序的内容:用XGBoost训练应用程序训练输出对象
XGBoost是否有一种将训练指标返回给ML引擎的方法?
对于tensorflow来说,这一过程似乎是自动化的,如文档中所述:
Cloud引擎是如何获得度量的 您可能会注意到,本文档中没有说明如何将您的超参数度量传递给Cloud引擎培训服务。这是因为服务监视由您的培训应用程序生成的TensorFlow摘要事件并检索度量。
对于XGBoost是否有类似的机制?
现在,我可以在每次试验结束时将每个度量结果转储到一个文件中,然后手动分析它们以选择最佳参数。但是,通过这样做,我是否放松了Cloud引擎提供的自动化机制,特别是关于"ALGORITHM_UNSPECIFIED“超参数搜索算法?
即,
ALGORITHM_UNSPECIFIED:...应用贝叶斯优化来搜索可能的超参数值的空间,从而为您的超参数集提供最有效的技术。
发布于 2018-10-08 17:51:39
XGBoost的超参数调优支持是以不同的方式实现的。我们创建了cloudml-高调python包来帮助完成它。我们还在找公共医生。同时,您可以参考这个分期样本来了解如何使用它。
发布于 2020-01-09 14:50:21
谷歌( google )的萨拉·罗宾逊()写了一篇关于如何做到这一点的好文章。我不会反悔并声称它是我自己的,我会在这里为其他任何人发布这篇文章:
https://sararobinson.dev/2019/09/12/hyperparameter-tuning-xgboost.html
https://stackoverflow.com/questions/52662854
复制相似问题