Экспоненциальная функция в R, возвращающая 0 в качестве значения - PullRequest
0 голосов
/ 10 марта 2020

кто может сказать мне решение, чтобы избежать результата 0 в y в программе R

y = 1- (1 / (1 + exp (-x)))

exp (-x) равно> 0, но для значений x, таких как 100, результат y равен 0. Мне нужно получить небольшие числа> 0, чтобы применить log (y) без получения результата -Inf.

1 Ответ

2 голосов
/ 10 марта 2020

Вы можете решить эту проблему с помощью нескольких простых математических выражений:

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

Если вас интересует log (y) для больших значений x, просто игнорируйте + 1, y приблизительно равно exp (-x ) с очень маленькой ошибкой для больших х. Таким образом, log (y) == -x для больших x.

Ваш учитель, вероятно, хочет, чтобы вы делали математику.

...