根据文件, 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。我们应该排除"交叉变量"衍生品?还有什么?
答案 0 :(得分:0)
我认为,您必须采用的衍生产品取决于Booster
返回的分数。因此,它导致每个训练示例(=样本)的一个值导致[n_samples]数组。得分是您的目标函数,即MSE中的(x-m)**2
或逻辑函数中的1/(1+exp(-x))
。