Tôi sẽ hỏi một câu hỏi liên quan đến cái này .
Tôi tìm thấy một ví dụ về cách viết chức năng mất tùy chỉnh cho xgboost tại đây :
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))
}
Chức năng mất hậu cần là
Trong đó là tỷ lệ cược log và y là nhãn (0 hoặc 1).
Câu hỏi của tôi là: làm thế nào chúng ta có thể nhận được độ dốc (đạo hàm đầu tiên) đơn giản bằng với sự khác biệt giữa các giá trị thực và xác suất dự đoán (được tính từ tỷ lệ cược log như preds <- 1/(1 + exp(-preds))
)?