RuntimeWarning:在计算逻辑函数时在exp中遇到溢出

 十万个蓝色天空_917 发布于 2022-12-18 11:26

当我尝试为我正在实现的数据挖掘方法计算逻辑函数时,我收到此错误:

RuntimeWarning: overflow encountered in exp

我的代码:

def logistic_function(x):
#     x = np.float64(x)
    return 1.0 / (1.0 + np.exp(-x))

如果我从一些相关问题中正确理解问题是np.exp()返回了一个巨大的值.我看到让numpy忽略警告的建议,但问题是当我得到这个错误时,我的方法的结果是可怕的.但是当我没有得到它时,它们就像预期的那样.所以让numpy忽略警告根本不是我的解决方案.我不知道有什么问题或者如何处理.

我甚至不知道这是否是一个错误的结果,因为有时我得到这个错误,有时不会!我多次查看我的代码,一切看起来都正确!

1 个回答
  • 你应该使用任何计算的物流功能scipy.special.expit,这在最近足够SciPy的比你的解决方案更稳定(尽管早期版本听错了),或者把它简化成tanh:

    def logistic_function(x):
        return .5 * (1 + np.tanh(.5 * x))
    

    此版本的功能稳定,快速且相当准确.

    2022-12-18 11:30 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有