Python基于最小二乘法实现曲线拟合示例


Posted in Python onJune 14, 2018

本文实例讲述了Python基于最小二乘法实现曲线拟合。分享给大家供大家参考,具体如下:

这里不手动实现最小二乘,调用scipy库中实现好的相关优化函数。

考虑如下的含有4个参数的函数式:

Python基于最小二乘法实现曲线拟合示例

构造数据

import numpy as np
from scipy import optimize
import matplotlib.pyplot as plt
def logistic4(x, A, B, C, D):
  return (A-D)/(1+(x/C)**B)+D
def residuals(p, y, x):
  A, B, C, D = p
  return y - logisctic4(x, A, B, C, D)
def peval(x, p):
  A, B, C, D = p
  return logistic4(x, A, B, C, D)
A, B, C, D = .5, 2.5, 8, 7.3
x = np.linspace(0, 20, 20)
y_true = logistic4(x, A, B, C, D)
y_meas = y_true + 0.2 * np.random.randn(len(y_true))

调用工具箱函数,进行优化

p0 = [1/2]*4
plesq = optimize.leastsq(residuals, p0, args=(y_meas, x))
            # leastsq函数的功能其实是根据误差(y_meas-y_true)
            # 估计模型(也即函数)的参数

绘图

plt.figure(figsize=(6, 4.5))
plt.plot(x, peval(x, plesq[0]), x, y_meas, 'o', x, y_true)
plt.legend(['Fit', 'Noisy', 'True'], loc='upper left')
plt.title('least square for the noisy data (measurements)')
for i, (param, true, est) in enumerate(zip('ABCD', [A, B, C, D], plesq[0])):
  plt.text(11, 2-i*.5, '{} = {:.2f}, est({:.2f}) = {:.2f}'.format(param, true, param, est))
plt.savefig('./logisitic.png')
plt.show()

Python基于最小二乘法实现曲线拟合示例

Python 相关文章推荐
qpython3 读取安卓lastpass Cookies
Jun 19 Python
Python 操作文件的基本方法总结
Aug 10 Python
Python遍历pandas数据方法总结
Feb 09 Python
python实现彩票系统
Jun 28 Python
pygame游戏之旅 python和pygame安装教程
Nov 20 Python
利用Django提供的ModelForm增删改数据的方法
Jan 06 Python
Python中的heapq模块源码详析
Jan 08 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
Mar 26 Python
Python Numpy,mask图像的生成详解
Feb 19 Python
django实现将修改好的新模型写入数据库
Mar 31 Python
解决Python 函数声明先后顺序出现的问题
Sep 02 Python
Pandas中两个dataframe的交集和差集的示例代码
Dec 13 Python
详解python之协程gevent模块
Jun 14 #Python
python 筛选数据集中列中value长度大于20的数据集方法
Jun 14 #Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
Jun 13 #Python
tensorflow: 查看 tensor详细数值方法
Jun 13 #Python
终端命令查看TensorFlow版本号及路径的方法
Jun 13 #Python
解决Tensorflow使用pip安装后没有model目录的问题
Jun 13 #Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
Jun 13 #Python
You might like
《逃离塔科夫》——“萌新劝退,老手自嗨”的硬核FPS游戏
2020/04/03 其他游戏
兼容性比较好的PHP生成缩略图的代码
2011/01/12 PHP
PHP--用万网的接口实现域名查询功能
2012/12/13 PHP
php实现使用正则将文本中的网址转换成链接标签
2014/12/03 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
2016/04/11 PHP
Laravel5.4框架中视图共享数据的方法详解
2019/09/05 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
2020/01/26 PHP
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
2011/01/09 Javascript
javascript中的对象创建 实例附注释
2011/02/08 Javascript
JavaScript 判断日期格式是否正确的实现代码
2011/07/04 Javascript
JS实现超简单的仿QQ折叠菜单效果
2015/09/21 Javascript
node安装--linux下的快速安装教程
2017/03/21 Javascript
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
vue.js如何将echarts封装为组件一键使用详解
2017/10/10 Javascript
12条写出高质量JS代码的方法
2018/01/07 Javascript
webpack4.x开发环境配置详解
2018/08/04 Javascript
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
2018/08/28 Javascript
Angularjs实现数组随机排序的方法
2018/10/02 Javascript
JavaScript中构造函数与原型链之间的关系详解
2019/02/25 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
2020/10/27 Javascript
React服务端渲染原理解析与实践
2021/03/04 Javascript
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
2017/11/08 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
Django 对IP访问频率进行限制的例子
2019/08/30 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
2020/02/13 Python
Python 读取位于包中的数据文件
2020/08/07 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
美国最大的半成品净菜电商:Blue Apron(蓝围裙)
2018/04/27 全球购物
EJB的激活机制
2013/10/25 面试题
药学专业个人自我评价
2013/11/11 职场文书
作风转变心得体会
2014/09/02 职场文书
法院授权委托书格式
2014/09/28 职场文书
收费员岗位职责
2015/02/14 职场文书
家长会开场白和结束语
2015/05/29 职场文书