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 相关文章推荐
解决Python中由于logging模块误用导致的内存泄露
Apr 23 Python
Windows下python2.7.8安装图文教程
May 26 Python
Python内置函数 next的具体使用方法
Nov 24 Python
完美解决安装完tensorflow后pip无法使用的问题
Jun 11 Python
解决Python pandas df 写入excel 出现的问题
Jul 04 Python
详解pandas安装若干异常及解决方案总结
Jan 10 Python
python openpyxl使用方法详解
Jul 18 Python
Python基础之字符串操作常用函数集合
Feb 09 Python
python 读取二进制 显示图片案例
Apr 24 Python
python中导入 train_test_split提示错误的解决
Jun 19 Python
Python操作MySQL数据库的示例代码
Jul 13 Python
selenium与xpath之获取指定位置的元素的实现
Jan 26 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
php读取3389的脚本
2014/05/06 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
2014/07/01 PHP
学习php中的正则表达式
2014/08/17 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
2020/04/14 PHP
用nodejs写的一个简单项目打包工具
2013/05/11 NodeJs
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
jQuery Easyui实现左右布局
2016/01/26 Javascript
JS只能输入正整数的简单实例
2016/10/07 Javascript
js 定位到某个锚点的方法
2016/11/19 Javascript
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
Node.JS循环删除非空文件夹及子目录下的所有文件
2018/03/12 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
js屏蔽F12审查元素,禁止修改页面代码等实现代码
2020/10/02 Javascript
[57:41]Secret vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python利用requests模块下载图片实例代码
2019/08/12 Python
详解一种用django_cache实现分布式锁的方式
2019/09/01 Python
python文字转语音实现过程解析
2019/11/12 Python
Python中Selenium模块的使用详解
2020/10/09 Python
CSS3制作日历实现代码
2012/01/21 HTML / CSS
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
泰国网上购物:Shopee泰国
2018/09/14 全球购物
美国用餐电影院:Alamo Drafthouse Cinema
2020/01/23 全球购物
高级技校毕业生自荐信
2013/11/18 职场文书
大学生实习自我鉴定
2013/12/11 职场文书
迟到早退检讨书
2014/02/10 职场文书
厨师长岗位职责
2014/03/02 职场文书
团代会主持词
2014/04/02 职场文书
双方协议书
2014/04/22 职场文书
初中教师业务学习材料
2014/05/12 职场文书
学生上课说话检讨书
2014/10/25 职场文书
单身申明具结书
2015/02/26 职场文书
MySQL 十大常用字符串函数详解
2021/06/30 MySQL