Как получить индексы xgb.DMatrix для добавления информации для февальной функции? - PullRequest
0 голосов
/ 09 ноября 2019

Мне нужно оптимизировать параметры 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")]

Кто-нибудь знает, есть ли способ, которым я могу добавить информацию либо по индексу, либо с помощью дополнительной информации, которую я мог бы иметь в матрице?

...