最小二乘法的本质原理

转自:http://blog.sina.com.cn/s/blog_5e6614220101ks63.html

本文主要以最简单的二元线性函数为基础,阐述最小二乘法的原理,事实上,最小二乘法可以更广泛地应用于非线性方程中,但本文以介绍为主,希望能以最简单的形式,使读者能够掌握最小二乘法的意义。

在物理实验数据统计时,我们会记录一些数据,记做数据x和数据y。但是,在记录数据后,我们依然不知道x和y 的具体关系。例如,测算男人手掌面积和身高的关系,我们会得到两组数据,如图,

图1数据点分布

这并不是一条严格意义上的直线,但这些数据对于实验研究员来说,可以作为某种依据,从而判断出两种数据之间的关系。根据两个量的许多组观测数据来确定它们的函数曲线,这就是实验数据处理中的曲线拟合问题。

事实上,我们更关注的是如何才能找到这么一条漂亮的曲线。那么,找到这条曲线的方法称作“最小二乘法”。

曲线拟合中最基本和最常用的是直线拟合。设x和y之间的函数关系由直线方程

  y=ax+b给出。

式中有两个待定参数,b代表截距,a代表斜率。下面的问题在于,如何找到“最合适”的a和b使得尽可能多的数据落在或者更加靠近这条拟合出来的直线上。即数据对这条直线的逼近程度最佳。当然,当我们将直线拟合出来之后,就可以反过来进行预测了。所以说最小二乘法是很有用的一种测算方法。

实际上,我们并不关心x和y到底是多少,因为x和y是给定的,当然x和y与其本质的内在关系之间肯定存在误差。我们关心的是方程中的a和b,也就是说,在这个待定的方程中,a和b才是所求的变量,它们可以描述出x和y的关系。 所以我们接下来的任务就是找到一组最好的a和b。

我们对a和b的要求就是,使得所有x和y相对拟合直线的误差总和最小。也就是说,我们要考虑的是,要使这些数据点距离拟合直线的和最小,距离最短,这样就可以使得尽可能多的数据成为有效点。

接下来我们的工作就是,最小化误差了。

最小二成法就此登场。

最小二乘法名字的缘由有两个,一是我们要将误差最小化,二是我们将误差最小化的方法是使误差的平方和最小化。误差最小化的原因前已述及,用误差平方和最小化来约束误差的原因是要规避负数对计算的影响。

接下来我们要做的就是使误差的平方和最小了。

对试验数据,使得最小,根据二元函数取极值,可知,须成立,

则  

联立得

接下来求解a和b,就可以了。

问题又来了,以上求极值的方法只能保证所求的点是驻点(临界点),我们知道,多元函数的驻点可以分为三类,即极小点、极大点和鞍点。

图2鞍点

图3极小点

我们至此还不能说明这就是我们要找的最优解,因为驻点有可能是极小点也有可能是鞍点或者是极大点。所以我们接下来要证明所求是满足要求的极小点。

极值点的判定

设函数,假设a不为零,则

这样,我们就把原式改写成了平方和/差的形式了。但我们还不知道到底是平方和还是平方差,这取决于平方项的系数。

下面分三种情况讨论:

若4ac-b^2<0,则二次项系数一正一负,临界点是鞍点。

若4ac-b^2=0,则只有一个平方项,这就意味着函数临界点只受到一个方向的约束,另一个方向发生了退化,不起作用了,如图,

图4 退化后的极值点

若4ac-b^2>0,这时会有两个平方项的系数都是正,此时w必能取到极值。当a>0时取极大值;当a<0时取取极小值。

由于通常情况下,我们求解释不可能有如此规范的方程形式,所以我们要引入二阶导数,再用以上方法判断临界点的类型。

(1) 二元函数的极值一定在临界点和不可导取得。对于不可导点,难以判断是否是极值点;对于驻点可用极值的充分条件判定。

(2)二元函数取得极值的必要条件: 设在点处可微分且在点处有极值,则,即是驻点。

(3) 二元函数取得极值的充分条件:设的某个领域内有连续上二阶偏导数,且,令,则

且 A<0时,f为极大值;

且A>0,f为极小值;

时,是鞍点;

当B2-AC = 0时,函数z = f (x, y)在点可能有极值,也可能没有极值,这里不做讨论了。

最后,我们将原始方法和二阶导方法做一个联系,事实上,二阶导的方法是原始方法的进化版本。

求导,得



    将求二阶导方法中的A、B、C与原始方法中的a、b、c建立联系,得

A=2a

B=b

C=2c

从而得到AC=4ac-b^2,可见两种方法等效。

转载于:https://www.cnblogs.com/Baron-Lu/p/9878693.html

最小二乘法的本质原理相关推荐

  1. 最小二乘法的本质是什么?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:深度学习与计算机视觉 作者:梨梨喵 https://ww ...

  2. 最小二乘法函数拟合原理及matlab实现—数学笔记

    最小二乘法函数拟合原理及matlab实现 --数值分析数学笔记 如有纰漏,欢迎指正 文章目录 最小二乘法函数拟合原理及matlab实现 前言 一.拟合标准 1.使偏差向量满足 1 1 1 - 范数 2 ...

  3. java源码系列:HashMap底层存储原理详解——4、技术本质-原理过程-算法-取模具体解决什么问题

    目录 简介 取模具体解决什么问题? 通过数组特性,推导ascii码计算出来的下标值,创建数组非常占用空间 取模,可保证下标,在HashMap默认创建下标之内 简介 上一篇文章,我们讲到 哈希算法.哈希 ...

  4. 最小二乘法的拟合原理

    一. 最小二乘法的拟合原理 根据<数学指南>书中的解释: 图2 <数学指南>中对最小二乘法的解释 上面这段话,枯燥且无趣,大家不用厌恶,数学向来这个样子. 现在,我们来慢慢认识 ...

  5. 最小二乘法拟合平面原理MATLABC++实现

    文章目录 最小二乘法拟合平面原理MATLAB&C++实现 最小二乘法拟合平面原理 MATLAB实现 c++实现 最小二乘法拟合平面原理MATLAB&C++实现 最小二乘法拟合平面原理 ...

  6. 最小二乘法多项式曲线拟合原理与实现--转

    原文地址:http://blog.csdn.net/jairuschan/article/details/7517773/ 概念 最小二乘法多项式曲线拟合,根据给定的m个点,并不要求这条曲线精确地经过 ...

  7. 最小二乘法多项式曲线拟合原理与实现

    概念 最小二乘法多项式曲线拟合,根据给定的m个点,并不要求这条曲线精确地经过这些点,而是曲线y=f(x)的近似曲线y= φ(x). 原理 [原理部分由个人根据互联网上的资料进行总结,希望对大家能有用] ...

  8. 多线程、cpu本质原理

    最近研究学习了一下汇编语言和操作系统原理,明白了疑惑多年的问题. 1.操作系统如何实现多进程.多线程. 2.cpu基本结构,cpu如何和其他设备(网卡.显卡.声卡.磁盘.usb)通信. 3.java虚 ...

  9. 最小二乘法的数学原理推导及python代码

    1. 什么是最小二乘法? 最小二乘法(Ordinary Least Squares)是一种常用的数据拟合方法,它通过最小误差的平方和来找到一组数据的最佳函数匹配. 很多软件中都包含最小二乘法功能的模块 ...

最新文章

  1. linux虚拟机上不了王,虚拟机上安装Linux时出现的问题及解决方法
  2. 计算机考研专业课资料,计算机考研专业课资料.doc
  3. spinbox的valuechanged 不响应键盘_键盘的选择实在太多,一个国产外设品牌最新旗舰机械键盘青轴版...
  4. 20应用统计考研复试要点(part27)--简答题
  5. 理解用户态切换到内核态——内核态下有一个特殊的进程
  6. 上一家单位离职的原因_员工离职再入职,专项附加扣除该如何变更?
  7. java怎么对用户做自定义模版打印_Printing tools 自定义模板打印的实现
  8. 瀏覽器擴展──釋放你的個性
  9. 读书笔记 - 《疯狂的站长》
  10. 使用WinDbg分析蓝屏dump原因
  11. 流利阅读 2019.2.2 Barbie will soon be 60—and is still going strong
  12. VS2010 混合模式程序集是针对v1.1.4322版的运行时生成的 在没有配置其他信息的情况下 无法再4.0运行中
  13. 微博尾巴不加android,! android应用——装逼神器《微博尾》
  14. 使用Python Tkinter的剪刀石头布游戏
  15. 【议程公布】2021年MongoDB中文社区南京技术沙龙
  16. 工程项目管理中的风险分析与防范
  17. IP地址转换、主机大小端、htonl、ntohl实现
  18. NB-IoT下的消防栓压力监测解决方案
  19. 联通取消漫游费损失63亿;ATT宣布2018年底推出5G行动服务 | IoT黑板报
  20. Linux下tomcat进程莫名消失

热门文章

  1. 数组树/fenwicktree/Binary Indexed Tree
  2. STM32的串口函数_库函数USART_SendData问题和解决方法--硬件复位导致第一个字节丢失
  3. 电磁场第二章公式总结
  4. CTFshow php特性 web139
  5. setxor--求两个集合交集的非(异或)
  6. blockingdeque java_Java BlockingDeque解决生产者与消费者问题
  7. 前后端token机制 识别用户登录信息
  8. python语法_嵌套
  9. .py与.pyc文件区别
  10. 7.2.2 - 并发多线程 开启进程的两种方式