Мне нужно оптимизировать параметры xgboost в настраиваемой функции оценки. Но для этого мне нужно объединить некоторую другую информацию о выбранных наблюдениях, чтобы измерить производительность.
Лучший способ для меня - добавить информацию непосредственно в xgb.DMatrix, например:
dtrain <- xgb.DMatrix(data = matrix, label = OBSERVATIONS$actual, ID = OBSERVATIONS$ID)
Таким образом, я смогу узнать, какие наблюдения оцениваются, и добавить некоторую дополнительную информацию для оценки. Что-то вроде:
feval = function(preds, dtrain){
# getting labels
actual <- getinfo(dtrain, "label")
# Retrieving additionnal information
ID <- getinfo(dtrain, "ID")
dt <- data.table(ID = ID, actual = actual, preds = preds)
# Note that it would work also work if there is a way to know what
# is the index of the observations in dtrain
# Joining additional information
dt = scalingFact[dt, on = c("ID")]
Кто-нибудь знает, есть ли способ, которым я могу добавить информацию либо по индексу, либо с помощью дополнительной информации, которую я мог бы иметь в матрице?