最小二乘法是一种优化算法,最小二乘法名字的缘由有两个:一是要将误差最小化,二是将误差最小化的方法是使误差的平方和最小化。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合,所拟合的曲线可以是线性拟合与非线性拟合。
1、常用而不知
来看一个生活中的例子。比如说,有五把尺子:
用它们来分别测量一线段的长度,得到的数值分别为(颜色指不同的尺子):
之所以出现不同的值可能因为:
a. 不同厂家的尺子的生产精度不同
b. 尺子材质不同,热胀冷缩不一样
c. 测量的时候心情起伏不定
......
总之就是有误差,这种情况下,一般取平均值来作为线段的长度:
日常中就是这么使用的。可是作为很事'er的数学爱好者,自然要想下:
这样做有道理吗?
用调和平均数行不行?
用中位数行不行?
用几何平均数行不行?
2、最小二乘法
换一种思路来思考刚才的问题。
首先,把测试得到的值画在笛卡尔坐标系中,分别记作 yi:
其次,把要猜测的线段长度的真实值用平行于横轴的直线来表示(因为是猜测的,所以用虚线来画),记作 y:
每个点都向 y做垂线,垂线的长度就是| y-yi | ,也可以理解为测量值和真实值之间的误差:
因为误差是长度,还要取绝对值,计算起来麻烦,就干脆用平方来代表误差:
总的误差的平方就是:
因为 y 是猜测的,所以可以不断变换:
自然,总的误差 也是在不断变化的。
法国数学家,阿德里安-馬里·勒讓德(1752-1833)提出让总的误差的平方最小的 就是真值,这是基于,如果误差是随机的,应该围绕真值上下波动。
这就是最小二乘法,即:
这个猜想也蛮符合直觉的,来算一下。
这是一个二次函数,对其求导,导数为0的时候取得最小值:
进而:
正好是算术平均数。
原来算术平均数可以让误差最小啊,这下看来选用它显得讲道理了。
以下这种方法:
就是最小二乘法,所谓“二乘”就是平方的意思。
3、最小二乘法的推广
算术平均数只是最小二乘法的特例,适用范围比较狭窄。而最小二乘法用途就广泛。
比如温度与冰淇淋的销量:
看上去像是某种线性关系:
可以假设这种线性关系为:
通过最小二乘法的思想:
上图的i、x、y分别为:
总误差的平方为:
不同的a、b会导致不同的 €,根据多元微积分的知识,当:
这个时候 取最小值。
对于a、b而言,上述方程组为线性方程组,用之前的数据解出来:
也就是这根直线:
其实,还可以假设:
在这个假设下,可以根据最小二乘法,算出 ,得到下面这根红色的二次曲线:
同一组数据,选择不同的 ,通过最小二乘法可以得到不一样的拟合曲线(出处):
不同的数据,更可以选择不同的 ,通过最小二乘法可以得到不一样的拟合曲线:
也不能选择任意的函数,还是有一些讲究的,这里就不介绍了。
广告
数学物理方法
联系客服