简体   繁体   English

R 中的指数函数返回 0 作为值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM