Я б задавав питання, пов’язане з цим .
Я знайшов приклад написання спеціальної функції втрати для xgboost тут :
loglossobj <- function(preds, dtrain) {
# dtrain is the internal format of the training data
# We extract the labels from the training data
labels <- getinfo(dtrain, "label")
# We compute the 1st and 2nd gradient, as grad and hess
preds <- 1/(1 + exp(-preds))
grad <- preds - labels
hess <- preds * (1 - preds)
# Return the result as a list
return(list(grad = grad, hess = hess))
}
Логістична функція втрат є
де - коефіцієнти журналу, а - мітки (0 або 1).у
Моє запитання: як ми можемо отримати градієнт (перша похідна) просто рівний різниці між справжніми значеннями та передбачуваними ймовірностями (обчислюється з log-коефіцієнтів як preds <- 1/(1 + exp(-preds))
)?