Xgboost - как сделать пользовательскую функцию потерь, которая зависит от значения другого столбца, а также от ошибки - PullRequest
0 голосов
/ 19 апреля 2020

У меня проблема с реализацией взвешивания по времени для обучения xgboost в R (т. Е. Передачи вектора веса в xgb.dmatrix) - хотя взвешивание влияет на считывание кривой обучения для обучающего набора, оно, похоже, не оказывает никакого влияния на все на фактической модели - производительность в тестовом наборе идентична.

Кажется, я не могу докопаться до сути этой проблемы или создать воспроизводимый пример. Поэтому вместо этого я хотел бы передать столбец Date функций в пользовательскую функцию потерь, что-то вроде:

custom_loss <- function(preds,dat) {
  labels <- getinfo(dat,"label")
  dates <- [a vector corresponding to the dates associated with each prediction]
  grad = f(dates)*-2*(labels - preds)
  hess = f(dates)*2
  [where f is an increasing function of the value in dates, so later samples matter more when training]
  return(list(grad=grad,hess=hess))
}

Но я не могу понять, как это сделать, какие-либо предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...