为了账号安全,请及时绑定邮箱和手机立即绑定

即使在复制和粘贴时,函数定义和函数调用也会在python 3中产生语法错误

即使在复制和粘贴时,函数定义和函数调用也会在python 3中产生语法错误

噜噜哒 2021-05-30 00:15:03
我正在尝试使用梯度下降解决在 python 中拼接到三阶多项式的幂律的最小二乘拟合问题。我已经计算了关于 Matlab 中参数的梯度。我手工计算的边界条件。我在卡方最小化算法中遇到语法错误,该算法必须考虑边界条件。我正在为一个机器学习课程做这件事,我正在完成一个有点自我指导和自我提议的长期项目,但由于这个我不知道如何克服的语法错误,我被卡住了。我不会为此获得学分。这只是放在我的简历上的东西。def polypowerderiv(x,a1,b1,c1,a2,b2,c2,d2,boundaryx,ydat):    #need to minimize square of ydat-polypower    #from Mathematica, to be careful    gradd2=2*(d2+c2*x+b2*x**2+a2*x**3-ydat)    gradc2=gradd2*x    gradb2=gradc2*x    grada2=gradb2*x    #again from Mathematica, to be careful    gradc1=2(c+a1*x**b1-ydat)    grada1=gradc1*x**b1    gradb1=grada1*a1*log(x)    return [np.sum(grada1),np.sum(gradb1),\        np.sum(gradc1),np.sum(grada2),np.sum(gradb2),\        np.sum(gradc2),np.sum(gradd2)]def manualleastabsolutedifference(xdat, ydat, params,seed, maxiter, learningrate):    chisq=0 #chisq is the L2 error of the fit relative to the ydata    dof=len(xdat)-len(params)    xparams=seed    for step in np.arange(maxiter):        a1,b1,c1,a2,b2,c2,d2=params        chisq=polypowerlaw(xdat,params)        for i in np.arange(len(xdat)):            grad=np.zeros(len(seed))            for i in np.arange(seed):        polypowerlawboundarysolver=\        polypowerboundaryconstraint(xdat,a1,b1,c1,a2,b2,c2)        boundaryx=minimize(polypowerlawboundarysolver,x0=1000)         #hard coded to be half of len(xdat)        chisq+=abs(ydat-\             polypower(xdat,a1,b1,c1,a2,b2,c2,d2,boundaryx)        grad=\            polypowerderiv(xdat,a1,b1,c1,\            a2,b2,c2,d2,boundaryx,ydat)    params+=learningrate*gradreturn params我得到的错误是:文件“”,第14行grad = polypowerderiv(xdat,a1,b1,c1,a2,b2,c2,d2,boundaryx,ydat)^ SyntaxError:无效语法另外,我在格式化方面遇到了一些小问题。请帮忙。这是我在 Stack Overflow 上发表的前几篇文章之一,经过多年的上下投票。感谢社区的广泛帮助。
查看完整描述

1 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

根据 Alan-Fey,您忘记了一个右括号:

chisq+=abs(ydat-\ 
            polypower(xdat,a1,b1,c1,a2,b2,c2,d2,boundaryx)

应该

chisq+=abs(ydat-\ 
            polypower(xdat,a1,b1,c1,a2,b2,c2,d2,boundaryx))


查看完整回答
反对 回复 2021-06-01
  • 1 回答
  • 0 关注
  • 151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信