繁体   English   中英

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

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

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