是否可以在python中将附加参数传递给xgboost自定义费用函数?

时间:2019-03-20 10:31:54

标签: python machine-learning xgboost

我设法找到的将xgboost与自定义成本函数一起使用的所有示例都涉及编写一个具有两个参数的cost函数,第一个是预测向量,第二个是xgboost决策矩阵对象。然后,此函数需要返回一阶和二阶导数的向量。

某些损失函数可能需要一个附加参数(这是训练过程的超参数)。一个(希望不是太深奥的)例子是Huber损失,它被实现为伪Huber损失,以使其具有两次可微性。可以在以下出色答案中找到一个如何在xgboost中执行此操作的示例:https://stackoverflow.com/a/45370500/8363008

此处,函数中使用了超参数“ scale”,但未在任何地方定义,我只能推断出它是全局变量。

是否有一种方法可以使scale参数成为成本函数的进一步参数,然后在训练时将其传递给它,例如,比之于持续不断地,它提供了一种比较笨拙的方式,例如对scale参数进行网格搜索将值重新分配给全局变量?

0 个答案:

没有答案