【发布时间】:2019-04-03 01:38:51
【问题描述】:
下面是我用来计算log loss的R代码:
LogLoss <- function(pred, res){
(-1/length(pred)) * sum (res * log(pred) + (1-res)*log(1-pred)) }
但是,如果预测列表包含 0 或 1,则对应的 log loss 将分别返回 Infinity 或 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] 信息
我不太明白为什么会这样,如果结果包含0或1,这会不会导致无法计算log loss?
【问题讨论】:
-
我对@987654325@ 和
Inf的看法正好相反,不要认为这会改变你的整体问题。奇怪,我不知道为什么0*log(0)是NaN,我希望它是 0 ... -
兄弟你能告诉我
c(0.9, 0, 0.9)中的c是做什么的吗? -
@r2evans 我认为 log(0) 是无穷大,0*infinity 也是无穷大。
-
log(0)在技术上是未定义的,所以这对我来说更有意义。参考:rapidtables.com/math/algebra/ln/Ln_of_0.html。至于c(0.9, 0, 0.9)中的c,它是R 中用于构建/连接向量的基本函数。
标签: python r neural-network deep-learning evaluation