[英]Exponential function in R returning 0 as a value
who can tell me a solution to avoid a result of 0 in y in R program谁能告诉我一个解决方案,以避免在 R 程序中 y 的结果为 0
y= 1-(1/(1+exp(-x)))
y= 1-(1/(1+exp(-x)))
exp(-x) is > 0 but for x values like 100 the result of y is 0. I need to get small numbers > 0 to apply log(y) without getting -Inf result. exp(-x) is > 0 但对于像 100 这样的 x 值,y 的结果是 0。我需要得到小数 > 0 来应用 log(y) 而不会得到 -Inf 结果。
You can solve this with some simple maths:你可以用一些简单的数学来解决这个问题:
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
If you are interested in log(y) for large values of x, just ignore the + 1
, y is approximately exp(-x) with a very small error for large x.如果您对大 x 值的 log(y) 感兴趣,只需忽略
+ 1
, y 大约为 exp(-x) ,大 x 的误差非常小。 Thus, log(y) == -x for large x.因此,对于大 x,log(y) == -x。
Your teacher probably wants you to do the maths.你的老师可能希望你做数学。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.