1 先来看一个生活中的例子
比如说,有五把尺子,用它们来分别测量一线段的长度,得到如下值(颜色指不同尺子):
之所以出现不同的值可能因为:
• 不同厂家的尺子的生产精度不同
• 尺子材质不同,热胀冷缩不一样
• 测量的时候心情起伏不定
• ......总之就是有误差,这种情况下,一般取平均值来作为线段的长度:
日常中就是这么使用的。可是作为数学爱好者,自然要想下:
• 这样做有道理吗?
• 用调和平均数行不行?
• 用中位数行不行?
• 用几何平均数行不行?
2 最小二乘法
换一种思路来思考刚才的问题。
首先,把测试得到的值画在笛卡尔坐标系中,分别记作yi :
其次,把要猜测的线段长度的真实值用平行于横轴的直线来表示(用虚线来画),记作y :
然后,每个点都向y做垂线,垂线的长度就是|y-yi|,也可以理解为测量值和真实值之间的误差:
因为误差是长度,还要取绝对值,计算起来麻烦,就干脆用平方来代表误差:
总的误差的平方就是:
因为y 是猜测的,所以可以不断变换:自然总的误差e也是在不断变化的。
法国数学家,阿德里安-馬里·勒讓德(1752-1833)提出让总的误差的平方最小的y就是真值,如果误差是随机的,应该围绕真值上下波动,这就是最小二乘法,即:
这是一个二次函数,对其求导,导数为0的时候取得最小值:
原来算术平均数可以让误差最小。这就是最小二乘法,所谓“二乘”就是平方的意思。
3 推广
算术平均数只是最小二乘法的特例,适用范围比较狭窄。而最小二乘法用途很广泛,比如温度与冰淇淋的销量,看上去像是某种线性关系,可以假设这种线性关系为:f(x)=ax+b
通过最小二乘法的思想:
这个时候e取最小值,对于a,b而言,上述方程组为线性方程组,用之前的(xi,yi)数据解出a=7.2,b=-73,代入f(x)=ax+b,即:f(x)=7.2x-73
其实,还可以假设:f(x)=ax^2+bx+c
在这个假设下,可以根据最小二乘法,算出a,b,c ,得到下面这根红色的二次曲线:
由此可见,同一组数据,选择不同的f(x) ,通过最小二乘法可以得到不一样的拟合曲线。
来源参考:
https://blog.csdn.net/ccnt_2012/article/details/81127117