从scipy最小化文档:
args:tuple,optional传递给目标函数及其衍生物的额外参数
大。这就是关于args
参数的所有内容。
所以我有这个代码可以产生一个由grisha.org提供的Holt-Winters预测。在博客文章中,作者确定alpha
,beta
和gamma
的最佳值分别为0.716
,0.029
,0.993
。
我怀疑我可以使用scipy的minimize
函数通过最小化误差平方和来解决这三个变量。这就是sse
函数在下面的作用:
def sse(alpha, beta, gamma):
pred = triple_exponential_smoothing(series, 12, alpha, beta, gamma, 24)
return sum((pred[:series.shape[0]] - series)**2)
我的问题是,我的目标函数sse
有三个参数(又名:多个参数)。我希望能够做的是将sse
传递给minimize
,让minimize
告诉我alpha
,beta
和{{1}的最佳值}} 是。所有三个参数都绑定在gamma
和0
之间。 “最佳”值显然是实现最小1
值的三个值。
可以通过sse
scipy.optimize.minimize
这是我的完整代码:
minimize(sse, [0.5, 0.5, 0.5], args=(beta, gamma),
bounds=[(0, 1), (0, 1), (0, 1)], method='SLSQP')
在alpha,beta,gamma参数优化之前
经过alpha,beta,gamma参数优化