[英]Exponential function in R returning 0 as a value
谁能告诉我一个解决方案,以避免在 R 程序中 y 的结果为 0
y= 1-(1/(1+exp(-x)))
exp(-x) is > 0 但对于像 100 这样的 x 值,y 的结果是 0。我需要得到小数 > 0 来应用 log(y) 而不会得到 -Inf 结果。
你可以用一些简单的数学来解决这个问题:
x <- 1
1-(1/(1+exp(-x)))
#[1] 0.2689414
1/(exp(x) + 1)
#[1] 0.2689414
x <- 100
1-(1/(1+exp(-x)))
#[1] 0
1/(exp(x) + 1)
#[1] 3.720076e-44
如果您对大 x 值的 log(y) 感兴趣,只需忽略+ 1
, y 大约为 exp(-x) ,大 x 的误差非常小。 因此,对于大 x,log(y) == -x。
你的老师可能希望你做数学。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.