文章目录

  • 前言
  • 一、曲线拟合是什么?
  • 二、最小二乘法是什么?
  • 三、求解最小二乘法(包含数学推导过程)
  • 四、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结

前言

随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习最基础的内容:最小二乘法。


提示:以下是本篇文章正文内容,下面案例可供参考

一、曲线拟合是什么?

曲线拟合也就是求一条曲线,使数据点均在离此曲线的上方或下方不远处, 它既能反映数据的总体分布,又不至于出现局部较大的波动, 能反映被逼近函数的特性,使求得的逼近函数与已知函数从总体上来说其偏差按某种方法度量达到最小。
设函数y=f(x)在m个互异点的观测数据为

求一个简单的近似函数φ(x),使之“最好”地逼近f(x),而不必满足插值原则。这时没必要取φ(xi) = yi, 而要使 i=φ (xi)yi 总体上尽可能地小。这种构造近似函数 的方法称为曲线拟合,称函数y=φ(x)为经验公式或拟合曲线。
如下为一个曲线拟合示意图。
清楚什么是曲线拟合之后,我们还需要了解一个概念—— 残差。
曲线拟合不要求近似曲线严格过所有的数据点,但使求得的逼近函数与已知函数从总体上来说其偏差按某种方法度量达到总体上尽可能地小。若令(1-1)
为残向量(残差)。
“使 (1-1) 尽可能地小”有不同的准则
(1)残差最大值最小
(2)残差绝对值和最小(绝对值的计算比较麻烦)
(3)残差平方和最小(即最小二乘原则。计算比较方便,对异常值非常敏感,并且得到的估计量具有优良特性。)

二、最小二乘法是什么?

个人粗俗理解:按照最小二乘原则选取拟合曲线的方法,称为最小二乘法。
百度百科:最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。

三、求解最小二乘法(包含数学推导过程)

我们以最简单的线性模型来解释最小二乘法。什么是线性模型呢?

监督学习中,如果预测的变量是离散的,我们称其为分类(如决策树,支持向量机等),如果预测的变量是连续的,我们称其为回归。回归分析中,n个自变量,且因变量和自变量之间是线性关系,则称为一/多元线性回归分析。
如何求解最小二乘问题?(使用极小值原理)
 首先应确定函数类(原则:根据实际问题与所给数据点的变化规律),在实际问题中如何选择基函数是一个复杂的问题,一般要根据问题本身的性质来决定。通常可取的基函数有多项式、三角函数、指数函数、样条函数等。我们以二元线性方程为例进行数学推导,如下:
 

四、使用步骤

例:在某化学反应里,测得生成物浓度y(%)与时间t(min)的数据见表3-3,试用最小二乘法建立t与y之间的经验公式。

1.引入库

代码如下(示例):

import numpy as np
import matplotlib.pyplot as plt
import numpy.linalg as lg

2.读入数据

代码如下(示例):

t=np.arange(1,17,1)
y=np.array([4,6.4,8,8.8,9.22,9.5,9.7,9.86,10,10.20,10.32,10.42,10.5,10.55,10.58,10.6
])
plt.figure()
plt.plot(t,y,'k*')
# y=at^2+bt+cA=np.c_[t**2,t,np.ones(t.shape)]w=lg.inv(A.T.dot(A)).dot(A.T).dot(y)plt.plot(t,w[0]*t**2+w[1]*t+w[2])
plt.show()

总结

以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

曲线拟合——最小二乘法( Ordinary Least Square,OLS)相关推荐

  1. 普通最小二乘法回归 - OLS (ordinary least square)

    前言 这篇博客用来记录初学 普通最小二乘回归 遇到的相关知识点和解决问题的过程. 开发环境:Pycharm 2018.1.2 版本:Python 2.7.14 :: Anaconda, Inc. 普通 ...

  2. 普通最小二乘法( Ordinary Least Square,OLS)

    我们以最简单的一元线性模型来解释最小二乘法.什么是一元线性模型呢? 监督学习中,如果预测的变量是离散的,我们称其为分类(如决策树,支持向量机等),如果预测的变量是连续的,我们称其为回归.回归分析中,如 ...

  3. 曲线拟合最小二乘法C实现

    曲线拟合最小二乘法C实现 #include "math.h"void pir1(x,y,n,a,m,dt)int n,m;double x[],y[],a[],dt[];{ int ...

  4. 线性回归模型-最小二乘法Ordinary Least Squares

    1.1 线性回归模型 下面是一系列的回归方法, 目标值是输入变量的线性组合, 定义y^\hat {y}y^​表示要预测的值. y^(w,x)=w0+w1x1+...+wpxp\hat {y}(w, x ...

  5. 《机器学习——数学公式推导合集》1. 线性模型之最小二乘法(least square method)求解线性模型

    1.1 什么是最小二乘法(least square method) 最小二乘法: 基于均方误差最小化来进行模型求解的方法称为 "最小二乘法(least square method)" ...

  6. 曲线拟合最小二乘法优缺点_在进行线性回归时,为什么最小二乘法是最优方法?...

    最小二乘法不永远是最优的方法.对于不同数据形式和建模需求,需要能自行选择合适的建模方式.本文会对比最小二乘法(MSE)和最小绝对值法(MAE)来比较两者的性质. 两者定义 我们首先来理清楚最小二乘法和 ...

  7. 曲线拟合最小二乘法优缺点_Matlab曲线拟合 最小二乘法 polyfit(转)

    Matlab曲线拟合 最小二乘法 polyfit 2009-04-07 19:04 曲线拟合 已知离散点上的数据集 ,即已知在点集 上的函数值 ,构造一个解析函数(其图形为一曲线)使 在原离散点 上尽 ...

  8. 曲线拟合最小二乘法优缺点_最小二乘法的优缺点

    展开全部 一.最小二乘法的优点:32313133353236313431303231363533e59b9ee7ad9431333431363663 1.最小二乘法能通过最小化误差的平方和寻找数据的最 ...

  9. 多项式曲线拟合最小二乘法

    对给定的试验数据点(xi,yi)(i=1,2,--,n),可以构造m次多项式 数据拟合的最简单的做法就是使误差p(xi)-yi的平方和最小 当前任务就是求一个P(x)使得 从几何意义上讲就是寻求给与定 ...

  10. matlab曲线拟合 最低点,Matlab曲线拟合 最小二乘法 polyfit【转】

    曲线拟合 已知离散点上的数据集 ,即已知在点集 上的函数值 ,构造一个解析函数(其图形为一曲线)使 在原离散点 上尽可能接近给定的 值,这一过程称为曲线拟合.最常用的曲线拟合方法是最小二乘法,该方法是 ...

最新文章

  1. Web开发的标准目录结构
  2. 使用ansible安装docker以及docker-compose
  3. 全局和本地事务(从理论上)
  4. python图形化界面开发工具_图形用户界面(GUI)常见问题
  5. HTTPS下导出excel失败解决办法
  6. 凯撒密码pythin密码_凯撒密码术
  7. Open cup #2
  8. 【ElasticSearch】es 压缩 你的 数据
  9. ng-option小解
  10. 游戏帐号被盗,但是杀毒软件没有发现病毒?DNS挟持盗号原理剖析
  11. 基本农田卫星地图查询_gps卫星信号模拟器如何gps信号
  12. AHCI驱动中的cmd
  13. 风火牙疼,紧急止痛、快速治疗的真实历程
  14. MSP430F149--点亮LED灯程序代码
  15. Druid 技术白皮书:大数据实时统计分析数据存储
  16. 服务器显示不兼容这是什么问题,服务器server0处于不兼容的状态,怎么办?
  17. 来自一个工作一年零九个月java程序员的自我介绍
  18. 基于MFC的五子棋设计与实现
  19. MySQL数据库中,在读已提交和可重复读这两个不同事务隔离级别下幻读的区别
  20. 工行华虹U盾在Vista和IE7下的解决方案

热门文章

  1. [CTF]学习资源推荐
  2. 专网视频会议直播系统整合部署方案附拓扑图
  3. CS1.6自定义游戏中的H菜单和设置菜单,增加一键买枪功能
  4. 机房收费系统——可行性分析报告
  5. 使用pdfFactory Pro虚拟打印机给文档加上水印
  6. linux下python网络编程框架-twisted安装手记,linux下Python网络编程框架-Twisted安装
  7. 软件测试用什么cpu,给你的CPU做体检!主流CPU测试软件使用宝典
  8. android 存储作假,对《纯活人伪造一个Android Killer或APK IDE或apktool反编译失败》的一点讨论...
  9. 快速排序(c语言实现)
  10. 百度地图开放平台web api 获取某项目方圆一公里的poi信息