微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GEKKO Python - 来自文档的简单线性回归

如何解决GEKKO Python - 来自文档的简单线性回归

通过遵循 GEKKO 文档,我使用了线性和多项式回归的示例。这里只是关于简单线性回归的部分。

from gekko import GEKKO
import numpy as np

xm = np.array([0.1,0.3,0.2,0.5,0.8])
ym = np.array([0.52,0.53,0.4,0.6,1.01])
             
#### Solution
m = GEKKO()
m.options.IMODE=2
# coefficients
c = [m.FV(value=0) for i in range(2)]
c[0].STATUS=1
c[1].STATUS=1

x = m.Param(value=xm)
yd = m.Param(value=ym)

y = m.CV(value=ym)
y.FSTATUS = 1

######### uncomment ############
#y = m.Var()
#m.Minimize((y-yd)**2)
################################
# polynomial model

m.Equation(y==c[0]+c[1]*x)
# linear regression
m.solve(disp=False)
p1 = [c[1].value[0],c[0].value[0]]
p1

我只是想知道为什么取消注释行时会得到不同的结果

y = m.Var()
m.Minimize((y-yd)**2)

文档中获得的结果(线性、二次、三次)似乎不是最小二乘法的结果。在这些情况下使用的最小化标准是什么?

最好的问候, 拉多万

解决方法

切换到 m.options.EV_TYPE=2 以获得 squared error objective

Gekko 中的默认值是 l1 范数目标。以下是description的差异:

Objective Function

l1 范数目标(绝对误差的总和)对异常值和不良数据不太敏感。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。