Ich würde eine Frage zu diesem Thema stellen .
Ich habe hier ein Beispiel für das Schreiben einer benutzerdefinierten Verlustfunktion für xgboost gefunden :
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))
}
Logistische Verlustfunktion ist
Dabei ist Log-Odds und y Labels (0 oder 1).
Meine Frage ist: Wie können wir einen Gradienten (erste Ableitung) erhalten, der einfach der Differenz zwischen wahren Werten und vorhergesagten Wahrscheinlichkeiten entspricht (berechnet aus logarithmischen Quoten als preds <- 1/(1 + exp(-preds))
)?