最小二乘法
2017-09-03 11:38
162 查看
最小二乘法
编辑本词条由“科普中国”百科科学词条编写与应用工作项目 审核 。
转载:百度百科
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。
中文名
最小二乘法
外文名
Least squares
别 称
最小平方法[1]
提出者
马里·勒让德
提出时间
1806年
应用学科
数学
适用领域范围
代数
适用领域范围
曲线拟合
目录
1 历史2 线性最小二乘的基本公式
3 原理
4 方法
5 公式
6 拟合
7 课题
8 思考与练习
9 实例
历史
编辑1801年,意大利天文学家朱赛普·皮亚齐发现了第一颗小行星谷神星。经过40天的跟踪观测后,由于谷神星运行至太阳背后,使得皮亚齐失去了谷神星的位置。随后全世界的科学家利用皮亚齐的观测数据开始寻找谷神星,但是根据大多数人计算的结果来寻找谷神星都没有结果。时年24岁的高斯也计算了谷神星的轨道。奥地利天文学家海因里希·奥尔伯斯根据高斯计算出来的轨道重新发现了谷神星。
高斯使用的最小二乘法的方法发表于1809年他的著作《天体运动论》中。
法国科学家勒让德于1806年独立发明“最小二乘法”,但因不为世人所知而默默无闻。
![](https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D220/sign=95a6810e68600c33f479d9ca2a4d5134/4a36acaf2edda3cc821cfa3a02e93901213f9234.jpg)
二乘法(2张)
勒让德曾与高斯为谁最早创立最小二乘法原理发生争执。
1829年,高斯提供了最小二乘法的优化效果强于其他方法的证明,因此被称为高斯-马尔可夫定理。(来自于wikipedia)[1]
线性最小二乘的基本公式
编辑考虑超定方程组(超定指未知数小于方程个数):
![](https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/ba<br/>15c68<br/>ike/s%3D199/sign=d1bb41dc80d6277fed12363111391f63/21a4462309f79052ce9892590bf3d7ca7acbd5d6.jpg)
其中m代表有m个等式,n代表有 n 个未知数
![](https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D17/sign=62db12086009c93d03f20af09e3d6cb4/b999a9014c086e06b659674d05087bf40bd1cbc7.jpg)
,m>n ;将其进行向量化后为:
![](https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D49/sign=e9d6c22fecc4b7453094b61fcefcadf2/14ce36d3d539b600d9704bb1ee50352ac65cb77e.jpg)
![](https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D199/sign=865441eba4cc7cd9fe2d30d000002104/5fdf8db1cb13495423d8b262514e9258d0094af5.jpg)
,
![](https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D88/sign=1b808bc4b5119313c343f2b86438c5ac/7e3e6709c93d70cf7304ef0bffdcd100baa12b3d.jpg)
,
![](https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D85/sign=a3688735748da9774a2f8b2eb151a361/e850352ac65c1038babb8ac4b5119313b17e89eb.jpg)
显然该方程组一般而言没有解,所以为了选取最合适的
![](https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D17/sign=24e9c30334fa828bd52399e4fc1f1a41/dbb44aed2e738bd42bcbf537a68b87d6267ff9ca.jpg)
让该等式"尽量成立",引入残差平方和函数S
![](https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D119/sign=f5b5ca279413b07eb9bd540935d79113/91ef76c6a7efce1b935185cca851f3deb48f65b9.jpg)
(在统计学中,残差平方和函数可以看成n倍的均方误差MSE)
当
![](https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D38/sign=6d7e8f35968fa0ec7bc7620527979b99/77c6a7efce1b9d16f254d767f4deb48f8c546420.jpg)
时,
![](https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D30/sign=db943f26be12c8fcb0f3f0cdfc036100/63d9f2d3572c11df00f3f225642762d0f703c292.jpg)
取最小值,记作:
![](https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D124/sign=b500c0cb5566d0167a199a2aa32ad498/728da9773912b31b3c8a8e2f8118367adbb4e1d6.jpg)
通过对
![](https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D30/sign=db943f26be12c8fcb0f3f0cdfc036100/63d9f2d3572c11df00f3f225642762d0f703c292.jpg)
进行微分[2] 求最值,可以得到:
![](https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D94/sign=6b8addbd80d6277fed123e3c2938b4f7/a044ad345982b2b73c2970c236adcbef76099b06.jpg)
如果矩阵
![](https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D34/sign=9cd5c9b98b5494ee8322091d2df53670/5bafa40f4bfbfbedc46f7e797ff0f736afc31f85.jpg)
非奇异则
![](https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D17/sign=62db12086009c93d03f20af09e3d6cb4/b999a9014c086e06b659674d05087bf40bd1cbc7.jpg)
有唯一解[3] :
![](https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D121/sign=56983e206a224f4a5399771138f69044/9213b07eca806538e8b4ec1590dda144ad34825e.jpg)
原理
编辑在我们研究两个变量(x,y)之间的相互关系时,通常可以得到一系列成对的数据(x1,y1.x2,y2... xm,ym);将这些数据描绘在x -y直角坐标系中,若发现这些点在一条直线附近,可以令这条直线方程如(式1-1)。
![](https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D89/sign=d6e85db2f2246b607f0ebf7de9f8e2ea/ca1349540923dd543eafa489d509b3de9d824876.jpg)
(式1-1)
其中:a0、a1 是任意实数
为建立这直线方程就要确定a0和a1,应用《最小二乘法原理》,将实测值Yi与利用计算值Yj(Yj=a0+a1Xi)(式1-1)的离差(Yi-Yj)的平方和
![](https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D96/sign=01a342c6b0b7d0a27fc9089bcaefda8c/738b4710b912c8fc6f59d8b9fe039245d688211f.jpg)
最小为“优化判据”。
令:φ =
![](https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D96/sign=01a342c6b0b7d0a27fc9089bcaefda8c/738b4710b912c8fc6f59d8b9fe039245d688211f.jpg)
(式1-2)
把(式1-1)代入(式1-2)中得:
φ =
![](https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D143/sign=b60d7f6360d0f703e2b291d83bfa5148/c8ea15ce36d3d5398a1e26b73887e950352ab0a6.jpg)
(式1-3)
当
![](https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D96/sign=01a342c6b0b7d0a27fc9089bcaefda8c/738b4710b912c8fc6f59d8b9fe039245d688211f.jpg)
最小时,可用函数 φ 对a0、a1求偏导数,令这两个偏导数等于零。
∑2(a0 + a1*Xi - Yi)=0(式1-4)
∑2Xi(a0 +a1*Xi - Yi)=0(式1-5)
亦即:
na0 + (∑Xi ) a1 = ∑Yi (式1-6)
(∑Xi ) a0 + (∑Xi^2 ) a1 = ∑(Xi*Yi) (式1-7)
得到的两个关于a0、 a1为未知数的两个方程组,解这两个方程组得出:
a0 = (∑Yi) / n - a1(∑Xi) / n (式1-8)
a1 = [n∑(Xi Yi) - (∑Xi ∑Yi)] / (n∑Xi^2 -∑Xi∑Xi)(式1-9)
这时把a0、a1代入(式1-1)中, 此时的(式1-1)就是我们回归的一元线性方程即:数学模型。
在回归过程中,回归的关联式不可能全部通过每个回归数据点(x1,y1. x2,y2...xm,ym),为了判断关联式的好坏,可借助相关系数“R”,统计量“F”,剩余标准偏差“S”进行判断;“R”越趋近于
1 越好;“F”的绝对值越大越好;“S”越趋近于 0 越好。
R = [∑XiYi - m (∑Xi / m)(∑Yi / m)]/ SQR{[∑Xi2 - m (∑Xi / m)2][∑Yi2 - m (∑Yi / m)2]} (式1-10) *
在(式1-10)中,m为样本容量,即实验次数;Xi、Yi分别为任意一组实验数据X、Y的数值。[1]
方法
编辑以最简单的一元线性模型来解释最小二乘法。什么是一元线性模型呢?监督学习中,如果预测的变量是离散的,我们称其为分类(如决策树,支持向量机等),如果预测的变量是连续的,我们称其为回归。回归分析中,如果只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。对于二维空间线性是一条直线;对于三维空间线性是一个平面,对于多维空间线性是一个超平面。[4]
对于一元线性回归模型, 假设从总体中获取了n组观察值(X1,Y1),(X2,Y2), …,(Xn,Yn)。对于平面中的这n个点,可以使用无数条曲线来拟合。要求样本回归函数尽可能好地拟合这组值。综合起来看,这条直线处于样本数据的中心位置最合理。 选择最佳拟合曲线的标准可以确定为:使总的拟合误差(即总残差)达到最小。有以下三个标准可以选择:[4]
(1)用“残差和最小”确定直线位置是一个途径。但很快发现计算“残差和”存在相互抵消的问题。
(2)用“残差绝对值和最小”确定直线位置也是一个途径。但绝对值的计算比较麻烦。
(3)最小二乘法的原则是以“残差平方和最小”确定直线位置。用最小二乘法除了计算比较方便外,得到的估计量还具有优良特性。这种方法对异常值非常敏感。[4]
最常用的是普通最小二乘法( Ordinary Least Square,OLS):所选择的回归模型应该使所有观察值的残差平方和达到最小。(Q为残差平方和)- 即采用平方损失函数。[4]
样本回归模型:
![](https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D250/sign=2fb48ab614950a7b713549c13ad0625c/500fd9f9d72a60594691309a2134349b023bbaa9.jpg)
其中ei为样本(Xi,Yi)的误差。[4]
平方损失函数:
![](https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D250/sign=294adf9924f5e0feea188e046c6134e5/bba1cd11728b471060472d4ccacec3fdfd0323c2.jpg)
则通过Q最小确定这条直线,即确定β0和β1,把它们看作是Q的函数,就变成了一个求极值的问题,可以通过求导数得到。求Q对两个待估参数的偏导数:[4]
![](https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D250/sign=e33fcb45e9fe9925cf0c6e5504a95ee4/cc11728b4710b91211ea257ecafdfc0392452203.jpg)
根据数学知识我们知道,函数的极值点为偏导为0的点。[4]
解得:
![](https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D250/sign=0b89a7849e0a304e5622a7ffe1c9a7c3/34fae6cd7b899e51f925e9944ba7d933c9950d83.jpg)
这就是最小二乘法的解法,就是求得平方损失函数的极值点。[4]
公式
编辑![](https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D94/sign=997ce491de33c895a27e947fd01340c3/0df3d7ca7bcb0a466447183f6c63f6246b60af4b.jpg)
拟合
编辑对给定数据点集合
![](https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D172/sign=af5ce125b14543a9f11bfecb2c168a7b/a8ec8a13632762d0eb469b6ea6ec08fa503dc6e2.jpg)
,在取定的函数类
![](https://gss1.bdstatic.com/-vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D14/sign=dc47318c53fbb2fb302b5c164e4a943f/95eef01f3a292df5655795c4ba315c6035a8734e.jpg)
中,求
![](https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D64/sign=164922928dd4b31cf43c97bf86d6b834/96dda144ad345982ee13dc430af431adcaef8441.jpg)
,使误差的平方和
![](https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D18/sign=291624928dd4b31cf43c90b385d6b891/d1a20cf431adcbef15f241d7aaaf2edda2cc9f18.jpg)
最小,
![](https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D145/sign=cfc2daa2ab4bd11300cdb3366faea488/86d6277f9e2f07082f6f14d1ef24b899a801f2fc.jpg)
。从几何意义上讲,就是寻求与给定点集
![](https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D172/sign=55b1d42557da81cb4ae687ca6064d0a4/4b90f603738da977c1cdbafab651f8198718e305.jpg)
的距离平方和为最小的曲线y=p(x)。函数p(x)称为拟合函数或最小二乘解,求拟合函数p(x)的方法称为曲线拟合的最小二乘法。[1]
最小二乘法的矩阵形式
最小二乘法的矩阵形式为:
![](https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D47/sign=f65bf4f756e736d15c138d0f9b502926/5366d0160924ab18d97e5b1c37fae6cd7b890bb4.jpg)
其中
![](https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D12/sign=2e4ffc96ab773912c0268163f819a21b/b17eca8065380cd7496f18c6a344ad34598281ac.jpg)
为
![](https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D34/sign=7cc5793f69600c33f479d8cc1b4ce1f0/d009b3de9c82d158db19e39a820a19d8bc3e4205.jpg)
的矩阵,
![](https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D9/sign=d3331bf5f21f3a295ec8d9fe996bf6/d01373f082025aaffb68c4e0f9edab64034f1a46.jpg)
为
![](https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D31/sign=49e55b248594a4c20e23e12a0ef47934/f603918fa0ec08face50a98c5bee3d6d55fbda4d.jpg)
的列向量,
![](https://gss1.bdstatic.com/-vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D13/sign=2d1072044334970a4373142c94ca158c/8601a18b87d6277f1bec88132a381f30e924fc1b.jpg)
为
![](https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D32/sign=2bd6c9380bf79052eb1f413c0cf3ed3e/9825bc315c6034a855ad02aac913495409237649.jpg)
的列向量。如果
![](https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D35/sign=5b6b289dcb177f3e1434fa0871cf6ef2/060828381f30e924323a261a4e086e061d95f77b.jpg)
(方程的个数大于未知量的个数),这个方程系统称为矛盾方程组(Over Determined System),如果
![](https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D35/sign=91a63b948e5494ee8322091c2cf536c5/5bafa40f4bfbfbedc91c8c547af0f736afc31f57.jpg)
(方程的个数小于未知量的个数),这个系统就是Under Determined System。
正常来看,这个方程是没有解的,但在数值计算领域,我们通常是计算
![](https://gss1.bdstatic.com/-vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D89/sign=56223c078501a18bf4eb1f469f2fb64a/96dda144ad3459826f415fb90ef431adcaef84d6.jpg)
,解出其中的
![](https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D9/sign=d3331bf5f21f3a295ec8d9fe996bf6/d01373f082025aaffb68c4e0f9edab64034f1a46.jpg)
。比较直观的做法是求解
![](https://gss1.bdstatic.com/-vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D91/sign=006e51782b34349b70066284c8eaf6c7/6d81800a19d8bc3e9476b6a8818ba61ea8d34551.jpg)
,但通常比较低效。其中一种常见的解法是对
![](https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D12/sign=2e4ffc96ab773912c0268163f819a21b/b17eca8065380cd7496f18c6a344ad34598281ac.jpg)
进行QR分解(
![](https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D56/sign=a5063b03952bd40746c7d3fb7b894972/472309f790529822de2c9ce8d5ca7bcb0a46d4fa.jpg)
),其中
![](https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D15/sign=fd606de1ad51f3dec7b2bd6195ee39c7/83025aafa40f4bfb9b9b3b7f014f78f0f7361855.jpg)
是
![](https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D34/sign=7cc5793f69600c33f479d8cc1b4ce1f0/d009b3de9c82d158db19e39a820a19d8bc3e4205.jpg)
正交矩阵(Orthonormal Matrix),
![](https://gss1.bdstatic.com/-vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D12/sign=e90b04f5f21f3a295ec8d1cc99253429/aa64034f78f0f736ca9ce92a0855b319ebc413be.jpg)
是
![](https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D32/sign=8df740b90ef431adb8d2453b4b36d808/d788d43f8794a4c2425e42000cf41bd5ad6e399f.jpg)
上三角矩阵(Upper Triangular Matrix),则有
![](https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D348/sign=1d4a23aa938fa0ec7bc762091e96594a/d52a2834349b033b242f1d4317ce36d3d439bd80.jpg)
相关文章推荐
- 矩阵链乘法(最小乘法数) (动态规划算法实现)算法导论p201
- 线性回归方法之最小二乘法、梯度下降法概念区分
- LDA与最小二乘法的关系及其变种详解
- 最小二乘法
- Python Machine Learning 1 普通最小二乘法
- 最小二乘法(高斯)
- 关于最大似然与交叉熵损失函数和最小二乘法的思考
- 最小二乘法-回归问题中的作用
- NYOJ 46最小乘法次数
- SSE 加速运算例子详解:乘法、加法、平方、最小值、最大值、与操作
- 回归-普通最小二乘法(OLS)解析式推导
- 1.1.1. Ordinary Least Squares 普通最小二乘法
- POJ 3101 Astronomy 解题报告(大数乘法+分数最小公倍数)
- 最小二乘法的线性拟合
- NYOJ 46(最小乘法次数)
- 最小二乘法 解释很到位的一篇文章
- 机器学习总结(四):极大似然估计与最小二乘法
- 一般线性最小二乘法
- 最小二乘法(高斯)
- 线性回归中的最小二乘法,L1,L2推导