Ниже приведен код R, который я использовал для расчета потерь в журнале:
LogLoss <- function(pred, res){
(-1/length(pred)) * sum (res * log(pred) + (1-res)*log(1-pred)) }
Однако, если список прогнозирования содержит 0 или 1, соответствующая потеря в журнале вернет Бесконечность или NaN соответственно.
LogLoss(c(0.9,0,0.2), c(1,1,1))
[1] NaN
LogLoss(c(0.9,1,0.2), c(1,1,1))
[1] Inf
Я не совсем понимаю, почему это так, не сделает ли это невозможным подсчет потерь журнала, если результат содержит 0 или 1?