python - GEKKO多元非线性回归
问题描述
df = pd.read_csv("data.csv")
xm1 = np.array(df["T"]) #Dep Var 1
xm2 = np.array(df["t"]) #Dep Var 2
xm3 = np.array(df["L"]) #Dep Var 3
ym = np.array(df["S"]) #Indep Var
# GEKKO model
m = GEKKO()
a = m.FV(lb=-100.0,ub=100.0)
b = m.FV(lb=-100.0,ub=100.0)
c = m.FV(lb=-100.0,ub=100.0)
d = m.FV(lb=-100.0,ub=100.0)
e = m.FV(lb=-100.0,ub=100.0)
f = m.FV(lb=-100.0,ub=100.0)
g = m.FV(lb=-100.0,ub=100.0)
x1 = m.Param(value=xm1)
x2 = m.Param(value=xm2)
x3 = m.Param(value=xm3)
z = m.Param(value=ym)
y = m.Var()
m.Equation(y == a+x1*b+x2*c+x3*d+e*(x1**2)+f*(x2**2)+g*(x3**2)
m.Obj(((y-z)/z)**2)
我开始 SyntaxError: invalid syntax
了m.Obj(((y-z)/z)**2)
。为此,我遵循了 APMonitor.com 的代码。该代码非常适合那里的示例。但是当我修改它以适应更多 FV 的回归问题时,它会显示此语法错误。附上语法错误图片
不太确定这有什么问题。任何帮助,将不胜感激。
解决方案
由于此行而发生错误:
m.Equation(y == a+x1*b+x2*c+x3*d+e*(x1**2)+f*(x2**2)+g*(x3**2)
y
声明前有多余的括号
推荐阅读
- android - 如何从头开始 for-each 循环?
- angular - Angular:在(更改)事件上添加动态生成的输入字段数据时出现问题
- http - 有没有办法将 cookie 设置为域的所有子域(域 = .site.com)但只排除 1 个域?
- c# - WebView.Eval() 在自定义渲染器 Webview 中不起作用
- docker-compose - 有没有办法在 docker-compose.yml 中获取 $PWD?
- c - 为什么(无符号短)0x8000 0001 是 1 而不是 65535?
- python-3.x - OrderedDictionary 数据框对象
- javascript - 在 NodeJS 中使用 Socket.IO 可以在本地工作,但不能在 Heroku 上使用
- jira - Jira - 发布后从看板中删除项目
- angular - 有没有办法从浏览器(例如chrome)在特定屏幕上打开本机移动应用程序?