模型拟合一般来说有这么三种:

  1. 切比雪夫近似准则
  2. 极小化绝对偏差之和
  3. 最小二乘准则

这几个原则各有各的适用范围。其中最小二乘准则是比较容易计算的。接下来我将简要的介绍最小二乘准则以及举例说明如何用python实现。

最小二乘准则

定义:给定某种函数类型

个数据点
,对整个数据点的极小化绝对偏差
,极小化和数为

拟合直线

如果我们要拟合的是直线,即

,计算过程如下:

拟合幂函数

可化为线性拟合的非线性拟合

用python求解

我们发现如果要自己计算的话,要用到偏导数,无穷级数的知识。如果数据点很多的话,函数比较复杂的,计算是十分困难的,甚至是不可能的。于是想到可以使用计算机求解。

通用代码如下:

# -*- coding: utf-8 -*-

举例

接着我用我的一篇文章中车辆停止举例为例进行拟合,相关数据在该文章里。

相信未来:从简单数学建模开始:05如何进行数学建模——以车辆停止距离模型为例​zhuanlan.zhihu.com

子模型一:反应距离模型

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.optimize import leastsq
%pylab inline
plt.rcParams['font.sans-serif']=['simhei']
plt.rcParams['axes.unicode_minus']=Falsedr = np.array([22,28,33,39,44,50,55,61,66,72,77,83,88])
v = np.array([20., 25., 30., 35., 40., 45., 50., 55., 60., 65., 70., 75., 80.])
db = np.array([20,28,40.5,52.5,72,92.5,118,148.5,182,220.5,266,318,376])
d = np.array([42,56,73.5,91.5,116,142.5,173,209.5,248,292.5,343,401,464])x = v
y = drdef func(p):k = preturn y - k*xr = leastsq(func,[np.sum(dr)/np.sum(v)])
k = r[0]
print('k=',k)plt.scatter(x,k*x,label = '拟合解')
plt.plot(x,k*x)
plt.scatter(x,y,label='观测解')
plt.plot(x,y)
plt.xlabel('dr')
plt.ylabel('v')
plt.title('最小二乘法则应用')
plt.legend()
plt.show()

这是拟合后的结果,k = 1.1040,之前的结果为k = 1.1016

子模型二:刹车距离模型

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.optimize import leastsq
%pylab inline
plt.rcParams['font.sans-serif']=['simhei']
plt.rcParams['axes.unicode_minus']=Falsedr = np.array([22,28,33,39,44,50,55,61,66,72,77,83,88])
v = np.array([20., 25., 30., 35., 40., 45., 50., 55., 60., 65., 70., 75., 80.])
db = np.array([20,28,40.5,52.5,72,92.5,118,148.5,182,220.5,266,318,376])
d = np.array([42,56,73.5,91.5,116,142.5,173,209.5,248,292.5,343,401,464])x = v**2
y = dbdef func(p):k = preturn y - k*xr = leastsq(func,[np.sum(db)/np.sum(v**2)])
k = r[0]
print('k=',k)plt.scatter(x,k*x,label = '拟合解')
plt.plot(x,k*x)
plt.scatter(x,y,label='观测解')
plt.plot(x,y)
plt.xlabel('dr')
plt.ylabel('v')
plt.title('最小二乘法则应用')
plt.legend()
plt.show()

这张图拟合前和拟合后的差距还是挺大的。

python 最小二乘回归 高斯核_从简单数学建模开始:08最小二乘准则的应用(附python代码)...相关推荐

  1. python 最小二乘回归 高斯核_「机器学习」一文读懂线性回归、岭回归和Lasso回归...

    点击上方蓝色字体,关注AI小白入门哟 作者 | 文杰 编辑 | yuquanle 本文介绍线性回归模型,从梯度下降和最小二乘的角度来求解线性回归问题,以概率的方式解释了线性回归为什么采用平方损失,然后 ...

  2. python 最小二乘回归 高斯核_数据科学中最简单也最重要的算法:线性回归

    全文共1794字,预计学习时长15分钟 线性回归是数据科学中最简单也是最重要的算法.无论面试的工作领域是数据科学.数据分析.机器学习或者是量化研究,都有可能会遇到涉及线性回归的具体问题.要想熟练掌握线 ...

  3. python 最小二乘回归 高斯核_机器学习技法6-(支持向量回归)

    一.核岭回归 线性分类模型加入了L2正则化以后,最佳解是w关于z的线性组合,因此带有L2正则化的线性分类模型能引入核函数,也就是把线性模型变成核函数的形式. 在线性回归模型中,损失函数为: 当给线性回 ...

  4. python 最小二乘回归 高斯核_最经典的回归模型参数估计算法—最小二乘

    首先,我们要明白最小二乘估计是个什么东西?说的直白一点,当我们确定了一组数的模型之后,然后想通过最小二乘的办法来确定模型的参数.举个两变量(一个自变量.一个因变量)线性回归的例子来说明一下,如下面所示 ...

  5. 数学建模——智能优化之模拟退火模型详解Python代码

    数学建模--智能优化之模拟退火模型详解Python代码 #本功能实现最小值的求解#from matplotlib import pyplot as plt import numpy as np imp ...

  6. 经济金融领域简单数学建模和分析:MATLAB成本曲线方程和销售收入直线方程

    经济金融领域简单数学建模和分析:MATLAB成本曲线方程和销售收入直线方程 MATLAB代码: x=[0:0.1:5]; y=9*x; plot(x,y,'r','LineWidth',0.5) ho ...

  7. python偏最小二乘法回归分析_【数学建模】偏最小二乘回归分析(PLSR)

    PLSR的基本原理与推导,我在这篇博客中有讲过. 0. 偏最小二乘回归集成了多元线性回归.主成分分析和典型相关分析的优点,在建模中是一个更好的选择,并且MATLAB提供了完整的实现,应用时主要的问题是 ...

  8. python建站的缺点_记录一下自己的建站过程(三):Python与Django

    前言(都是唠叨) 讲完了前端了,后端开始了.还是pml老师,因为我后面的课都没听过,所以一直都是不知道后端到底是怎么工作的.只听过一个词叫Tornado,对就真的只知道这个词,龙卷风,它是个啥我到现在 ...

  9. python 时间序列prophet 模型分析_手把手教你用Prophet快速进行时间序列预测(附Prophet和R代码)...

    原标题:手把手教你用Prophet快速进行时间序列预测(附Prophet和R代码) 作者:ANKIT CHOUDHARY:翻译:王雨桐:校对:丁楠雅: 本文约3000字,建议阅读12分钟. 本文将通过 ...

最新文章

  1. 评价对象检测模型的数字度量:F1分数以及它们如何帮助评估模型的表现
  2. 关于node js和 npm 版本不匹配的情况
  3. 你真的了解引用传递与值传递吗?
  4. 反射_Class对象功能_获取Field
  5. 解决Lync2010错误:无法同步通讯簿信息
  6. Android char数据类型乱码��解决方法
  7. 计算机辅助工艺设计主要内容,计算机辅助工艺设计.ppt
  8. 打印纸张尺寸换算_「凭证纸尺寸」【用友凭证打印】自定义纸张尺寸对照表 - seo实验室...
  9. adobe cs5中文补丁 indesign_indesign cs5下载_Adobe InDesign CS5简体中文版下载 - 下载之家...
  10. 联想微型计算机怎么连接电源,终于认识联想电脑主板与机箱电源安装方法
  11. 从文案到配音,只需要一部手机!5分钟掌握影视解说制作流程
  12. 华为与Emulex、Oracle合作发布数据完整性解决方案
  13. 笔记11-继承修饰符
  14. Java五子棋书,本文实例讲述了java实现的五子棋游戏代码,分享给大家供大家参考,具体代码如下package gyb.exam; import java.awt.Bo...
  15. Spark开发环境的搭建(一)
  16. 基于TCP Socket和Websocket实现的相互即时通信系统
  17. Oracle 分区表——Range分区
  18. 微信小程序开发(五)——数据绑定、运算、样式导入、页面跳转
  19. [笔记]Windows核心编程《十六》线程栈
  20. TXT文件编码格式解析

热门文章

  1. python管理系统web版_Python学生管理系统(web网页版)-Go语言中文社区
  2. python封装exe如何返回上一步_如何将python脚本封装成exe程序?
  3. matlab调用ANSYS--------2
  4. PyTorch框架学习十四——学习率调整策略
  5. Python数据类型-----列表
  6. Jupyter 安装使用
  7. Python编程从入门到实践~文件写入
  8. android x86 笔记本卡屏,笔记本死机卡屏怎么办
  9. Linux看内存标压低压,三代锐龙、国产Linux上身笔记本电脑,性能是否和参数一样好看?...
  10. 并查集算法c语言版,并查集及其C程序实现.doc