【问题标题】:RuntimeWarning: overflow encountered in exp predictions = 1 / (1 + np.exp(-predictions))RuntimeWarning:exp 预测中遇到溢出 = 1 / (1 + np.exp(-predictions))
【发布时间】:2022-12-04 17:43:34
【问题描述】:

我用 dataset.csv 运行我的 python 代码,我一直收到这个错误,值是 0,没有实际结果 训练精度:0.0 测试精度:0.0

【问题讨论】:

    标签: python logistic-regression


    【解决方案1】:

    RuntimeWarning: overflow encountered in exp warning表示NumPy中的exp函数遇到了溢出错误。这意味着 exp 函数的输入值太大,函数无法计算该值的指数。

    NumPy 中的 exp 函数计算给定输入值的指数。指数函数定义为 exp(x) = e^x,其中 e 是自然对数的底,x 是输入值。当输入值太大时,exp 函数会遇到溢出错误,因为计算结果太大而无法表示为浮点数。

    为避免exp警告遇到RuntimeWarning: overflow,可以使用numpy.clip函数将exp函数的输入值限制在一定范围内。 numpy.clip 函数允许您为输入指定最小值和最大值,超出此范围的任何输入值都将被裁剪为最小值或最大值。

    下面举例说明如何使用 numpy.clip 函数来避免 exp 警告中遇到的 RuntimeWarning: overflow:

    import numpy as np
    
    # Define a large input value
    x = 1e100
    
    # Compute the exponential of the input value
    y = np.exp(x)
    
    # Print the result
    print(y)
    
    

    在本例中,输入值 x 被设置为一个较大的值 (1e100),exp 函数用于计算该值的指数。当你运行这个程序时,它会输出计算结果,即inf(无穷大),如下所示:

    inf
    

    但是,该程序也会产生 RuntimeWarning: overflow encountered in exp 警告,因为输入值太大,exp 函数无法计算。

    为避免此警告,可以使用 numpy.clip 函数将 exp 函数的输入值限制在一定范围内。以下是如何执行此操作的示例:

    import numpy as np
    
    # Define a large input value
    x = 1e100
    
    # Use the numpy.clip function to limit the input value
    x = np.clip(x, -np.inf, np.inf)
    
    # Compute the exponential of the input value
    y = np.exp(x)
    
    # Print the result
    print(y)
    
    

    本例中使用numpy.clip函数将输入值x限制在(-inf, inf)范围内。这确保了输入值不会太大以致于 exp 函数无法计算。当你运行这个程序时,它会输出与之前相同的结果(inf),但是它不会产生 RuntimeWarning: overflow encountered in exp 警告,因为输入值现在在 exp 函数的有效范围内。

    我希望这能帮助你理解 RuntimeWarning: overflow encountered in exp warning 以及如何使用 NumPy 中的 numpy.clip 函数来避免它。如果您有任何其他问题或需要任何进一步的帮助,请告诉我。

    【讨论】:

      猜你喜欢
      • 2017-11-15
      • 2018-07-10
      • 2020-12-06
      • 1970-01-01
      • 2022-01-24
      • 2018-01-20
      • 2020-07-11
      • 1970-01-01
      • 2023-03-28
      相关资源
      最近更新 更多