我在python中有以下信息(dataframe)
product baskets scaling_factor
12345 475 95.5
12345 108 57.7
12345 2 1.4
12345 38 21.9
12345 320 88.8
我想运行以下非线性回归和估计参数。
a、b和c
我要拟合的公式:
scaling_factor = a - (b*np.exp(c*baskets))
在sas中,我们通常运行以下模型:(使用高斯-牛顿法)
proc nlin data=scaling_factors;
parms a=100 b=100 c=-0.09;
model scaling_factor = a - (b * (exp(c*baskets)));
output out=scaling_equation_parms
parms=a b c;
有没有类似的方法来估计Python中使用非线性回归的参数,我如何才能看到Python中的图。
同意Chris Mueller的观点,我也会使用} 。
代码如下:
scipy
但是^{最后,给你:
对于这样的问题,我总是使用^{} 和我自己的最小二乘函数。优化算法不能很好地处理不同输入之间的巨大差异,因此在函数中缩放参数是一个好主意,这样暴露给scipy的参数都是按1的顺序排列的,正如我在下面所做的那样。
当然,和所有最小化问题一样,重要的是使用良好的初始猜测,因为所有算法都可能陷入局部极小值。优化方法可以通过使用
method
关键字进行更改;其中一些可能性是根据the documentation,默认为BFGS。
相关问题 更多 >
编程相关推荐