【发布时间】:2017-03-30 12:31:38
【问题描述】:
由于我真的很难从 R 代码转换为 Python 代码,因此我想寻求一些帮助。我想使用的代码是从stackexchange的数学论坛提供给我的。
https://math.stackexchange.com/questions/2205573/curve-fitting-on-dataset
我明白发生了什么。但是我真的很难尝试解决 R 代码,因为我从未见过它。我已经编写了返回平方和的函数。但我被困在如何使用类似于 optim 函数的函数。而且我真的不喜欢对初始值的猜测。我希望更好地运行并重新运行一种优化函数,直到我得到想要的结果,因为我对近乎完美的曲线拟合的需求非常高。
def model (par,x):
n = len(x)
res = []
for i in range(1,n):
A0 = par[3] + (par[4]-par[1])*par[6] + (par[5]-par[2])*par[6]**2
if(x[i] == par[6]):
res[i] = A0 + par[1]*x[i] + par[2]*x[i]**2
else:
res[i] = par[3] + par[4]*x[i] + par[5]*x[i]**2
return res
这是我的模型函数...
def sum_squares (par, x, y):
ss = sum((y-model(par,x))^2)
return ss
这是平方和
但我不知道如何转换:
#I found these initial values with a few minutes of guess and check.
par0 <- c(7,-1,-395,70,-2.3,10)
sol <- optim(par= par0, fn=sqerror, x=x, y=y)$par
到 Python 代码...
【问题讨论】:
-
小心
^。在 Python 中,**是幂运算符,因此您需要编写x**2来获得 x 平方。 -
哦,是的,当然,对不起那个,我会修复那个错误。但真正的问题是,如何得到:#我通过几分钟的猜测和检查找到了这些初始值。 par0
-
@mikey 感谢您的建议,但我有 Python 中的数据,这不是问题。我只是想让 R 代码中的函数在我的 Python 数据上工作,所以我想将 R 代码转换为 Python 代码......
标签: python r curve-fitting curve