Scikit learn 使用Google Cloud ML引擎和XGBoost优化超参数

Scikit learn 使用Google Cloud ML引擎和XGBoost优化超参数,scikit-learn,google-cloud-platform,xgboost,google-cloud-ml,Scikit Learn,Google Cloud Platform,Xgboost,Google Cloud Ml,我试图复制本文中报告的超参数调优示例,但我希望在我的培训应用程序中使用scikit learn XGBoost而不是tensorflow 我能够在一个作业中运行多个试验,针对每个hyperparameters组合。但是,ML引擎返回的训练输出对象不包括finalMetric字段,该字段报告度量信息(请参见下图中的差异) 我从上面的链接示例中得到: 使用XGBoost运行我的培训应用程序得到了什么: XGBoost是否有办法将培训指标返回到ML引擎 根据文档中的规定,tensorflow的此过

我试图复制本文中报告的超参数调优示例,但我希望在我的培训应用程序中使用scikit learn XGBoost而不是tensorflow

我能够在一个作业中运行多个试验,针对每个hyperparameters组合。但是,ML引擎返回的训练输出对象不包括finalMetric字段,该字段报告度量信息(请参见下图中的差异)

我从上面的链接示例中得到:

使用XGBoost运行我的培训应用程序得到了什么:

XGBoost是否有办法将培训指标返回到ML引擎

根据文档中的规定,tensorflow的此过程似乎是自动化的:

云ML引擎如何获取度量

您可能会注意到,本文档中没有说明 用于将超参数度量传递给云ML引擎培训 服务这是因为该服务监视TensorFlow摘要事件 由培训应用程序生成并检索度量

XGBoost有类似的机制吗

现在,我可以在每次试验结束时将每个指标结果转储到一个文件中,然后手动分析它们以选择最佳参数。但是,通过这样做,我是否失去了云ML引擎提供的自动化机制,特别是关于“算法\未指定”超参数搜索算法

i、 e

算法:[……]将贝叶斯优化应用于搜索 可能的超参数值的空间,导致 为您的超参数集提供有效的技术


XGBoost的超参数调优支持是以不同的方式实现的。我们创建了帮助完成这项工作的。我们还在为它准备公共文件。同时,你可以参考这篇文章来了解如何使用它。

谷歌的Sara Robinson写了一篇关于如何使用它的好文章。与其反刍并声称这是我自己的,我将在这里为任何其他人张贴这篇文章:


谢谢,这个例子非常有用。只是一个小注释:cloudml hypertune包的“report\u hyperparameter\u tuning\u metric”函数中的参数“global\u step”的值在“finalMetric”的标签“trainingStep”中的training输出对象中报告。因此,在使用提前停止的情况下,传递模型的最佳限制参数将更有用(而不是像示例中那样始终指定值1)。