问题描述
我正在尝试将曲线/函数拟合到一组 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)
这里的 x
和 y
仅取自现有 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 (将#修改为@)