У меня проблема с реализацией взвешивания по времени для обучения 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))
}
Но я не могу понять, как это сделать, какие-либо предложения?