XGBoost python自定义目标函数

时间:2018-05-03 21:48:25

标签: python xgboost custom-function hessian hessian-matrix

根据文件, http://xgboost.readthedocs.io/en/latest/python/python_api.html 如果我们想要定义自定义目标函数,它应该有签名

objective(y_true, y_pred) -> grad, hess

,其中

hess: array_like of shape [n_samples]
The value of the second derivative for each sample point

但是,如果我们有损失函数,根据N个变量,我们应该有NxN矩阵的二阶导数,但我们的hess的形状只有Nx1。我们应该排除"交叉变量"衍生品?还有什么?

1 个答案:

答案 0 :(得分:0)

我认为,您必须采用的衍生产品取决于Booster返回的分数。因此,它导致每个训练示例(=样本)的一个值导致[n_samples]数组。得分是您的目标函数,即MSE中的(x-m)**2或逻辑函数中的1/(1+exp(-x))