XGBoost自定义损失函数多类

时间:2020-01-06 08:14:13

标签: r xgboost loss-function

我正在尝试针对XGBoost中的多类问题实现自己的自定义损失函数。首先,我想复制multi:softprob的行为。我在R中的代码:

softmaxobj=function(preds,dtrain){
  labels <- getinfo(dtrain, "label")
  labels=model.matrix(~factor(labels))
  preds=apply(preds,1,function(x){exp(x)/sum(exp(x))})
  grad=preds-labels
  hess=2*preds*(1-preds)
  return(list(grad = as.numeric(grad), hess = as.numeric(hess)))
}

但是,在调试之后,我发现preds参数返回一个向量,而不是带有标签长度和全0值的矩阵(正如我所期望的)。这是为什么?我在哪里可以找到原始的multi:softprob代码?

0 个答案:

没有答案