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

使用 scipy 最小二乘法获取正确参数的问题

如何解决使用 scipy 最小二乘法获取正确参数的问题

不确定这是否更像是一个数学问题而不是一个编程问题,所以如果它不在正确的论坛中,我们深表歉意。 我必须为我的数据拟合一些模型,而且我在数据建模方面没有太多经验。您可以在下方看到原始衰减、实际拟合的平滑版本和实际拟合。提取一个关键参数是衰减开始的 y 轴值 - 在这种情况下,您会看到它应该约为 0.3

考虑到嘈杂的数据,拟合似乎很好(尽管卡方只有大约 0.1..),但是根据我应用的过滤器的窗口大小,我得到了 600 - 10 000 范围内的任何野生数字数千范围内的错误..(使用协方差矩阵计算)。其他参数估计更合理一些。 我在这里使用 scipy 最小二乘法。下面是一些代码,以防万一:

 model_func = lambda t,r0,rinf,theta: (r0-rinf)*np.exp(-np.divide(t,theta)) + rinf

# weighted by the weights calculated above from SG filter
error_func = lambda p,r,t,w: (r - model_func(t,p[0],p[1],p[2]))*w

p0,p1,p2 = r0_0,rinf_0,theta_0   # parameters to optimize - initial values 

# minimise sum of squares 
full_output = scipy.optimize.leastsq(error_func,x0 = [p0,p2],args = (r,w),full_output = True)

params_fit,cov_x,infodict,mesg,ier = full_output

enter image description here

PS:有谁知道一些不错的温和数据建模课程?我从 Coursera 开始了一个,但它让我无法理解,所以我放弃了.. 只需要牢牢掌握这些概念。

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