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 (将#修改为@)