微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OptimizeWarning:无法估计参数的协方差 - 它的真正含义是什么?

如何解决OptimizeWarning:无法估计参数的协方差 - 它的真正含义是什么?

我正在尝试将曲线/函数拟合到一组 2D 点 (x,y)。

我为此使用了 sp.optimize.curve_fit

我正在尝试将这个目标函数拟合到我的数据中。

def objective_f(x,a1,a2,a3,a4,a5,b1,b2,b3,b4,b5,c):
    s1 = np.log(x+1.0)
    s2 = (x+1.0)
    s3 = np.log(x+1.0) * (x+1.0)
    s4 = (x+1.0)*(x+1.0)
    s5 = np.exp ( (x+1.0) / 1e8 )

    return a1 * s1 + a2 * s2 + a3 * s3 + a4 * s4 + a5 * s5 + b1 / s1 + b2 / s2 + b3 / s3 + b4 / s4 + b5 / s5 + c
    
    

我只是通过这个简单的调用来做到的:

popt,_ = sp.optimize.curve_fit(objective_f,x,y)

这里的 xy 仅取自现有 Pandas DataFrame 的 2 列,如下所示:

x = df2['population'].astype('float64').values
y = df2['budget'].astype('float64').values

我返回的参数似乎很好,并且可以很好地估计给定数据。

但我一直收到这个警告

minpack.py:829: OptimizeWarning: Covariance of the parameters Could not be estimated category=OptimizeWarning)

我用谷歌搜索并找到了几页,但似乎没有一个能很好地解释这是关于什么的。

为什么我会收到此警告?

这个警告是我应该担心的吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。