我试图让scipy的curves_fit
函数估算修改的负指数函数的参数。当我致电curve_fit
并且我不知道原因时,我收到了错误。
该功能定义为:
def negative_exponential(x, carryover, asymptote, speed):
return x[0] * carryover + asymptote * (1 - np.exp(-speed * x[1]))
当使用合理的参数
调用时,这似乎按预期工作用于估计参数的数据存储在数据帧中。这是我用来调用curve_fit
x = df[["Sales_2015", "Calls_2016"]]
y = df["Sales_2016"]
popt, pcov = curve_fit(negative_exponential, x.values, y.values)
print (popt)
curve_fit
函数会出现此错误
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
C:\Users\steve\Anaconda3\lib\site-packages\pandas\indexes\base.py in get_loc(self, key, method, tolerance)
2133 try:
-> 2134 return self._engine.get_loc(key)
2135 except KeyError:
我也尝试通过传递x.values和y.values来调用curve_fit
。这也是一个错误。
另请注意,使用此数据估算OLS模型没有问题,例如
model = sm.OLS(y, x).fit()
model.summary()
这意味着我需要在传递给x
之前对y
和curve_fit
做一些事情
有什么建议吗?
答案 0 :(得分:0)
问题是x和y的维度。转置数据帧系列修复了代码:
{TableName}