如何解决使用Scipy Optimize将多个可靠变量的SSE最小化
我正在尝试最小化多个可靠变量的平方误差总和。我可以使用具有GRG NONLINEAR方法的Excel求解器执行所需的操作。我已经尝试了optimize.minimize和optimize.differential_evolution中的方法。每次,优化都会在1次迭代后成功终止,其结果与给定的初始参数几乎相同。我的代码如下所示。 get_sse函数获取足球联赛中的固定装置列表,并在每个固定装置中输入适用于主队和客队的球队等级(x)。
def get_sse(x,fixtures,teams):
HFA = 0.410353535353535 # home field advantage
GW = 11
decay_fact = 3
for i,team in teams.iterrows():
fixtures[fixtures == team["Team"]] = x[int(i-1)] ##iterrows starts index at 1,whereas first indicy in x is 0
v = HFA + fixtures[:,1]- fixtures[:,2]
SEzip = zip(y,v,fixtures[:,0])
sse = 0
for s in SEzip:
sse += (s[0] - s[1])**2 * 1/((GW-s[3])/decay_fact + 1)
return sse
bnds = [(-2,2) for _ in x]
cons = ({'type': 'eq','fun': lambda x: sum(x)})
x0 = x
result = optimize.minimize(get_sse,x0 = x0,args=(fixtures,teams),bounds = bnds,constraints = cons)
'''
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。