matlab 最小二乘法拟合_?最小二乘法 (Least Squares)

194532ada4615be81857d2f06a6d8829.png

最小二乘法,为什么叫二乘法?

​二乘其实是指平方的意思,为什么用平方呢?因为平方可以消除误差正负方向上的差异,单纯的只比较长度

另一种通俗的说法叫距离(学术一点叫欧氏距离),距离不分上下、左右,只有大小,所以可以用来衡量目标估计的所有方向偏差累积。

啰嗦的分析一下,若您善用程序员if-else思维。

定义:估计目标正方向上为正,负方向上为负。计算时只要加一个if-else判断就行了,并不一定非要用平方来代表距离,还可以用绝对值、三次方、次方.......等。

何为数学技巧?此处的平方(二乘)是谓也!最简单的负负得正计算规则让二乘法这个名字得以发扬光大,名垂青史,成为一切拟和法追宗溯源的“鼻屎“(鼻始)。

至于最小,这个任务就传到微积分最优化同学的头上了,暂且不表。

d059fdb03b7d959c254fc6f5428c5fa4.png

如上图所示:蓝点是真实数据,黄点是每个真实数据的估计值,红线的长短即代表真实与估计距离,目标就是找到一条直线(模型)使得所有红线累和最短,推广到多维空间,就是找到一个超平面,而这个超平面是有数学公式解的!以下就是该公式一般化的推导过程,需要点儿耐心看,若有不明白的,请大胆的留言指出。

502974574599f48f3c4967ffaeb6f8af.png

最小二乘法 通用数学公式解

误差方程为:

其最优解为:

其中

的样本输入矩阵:

列向量,一般称为
, 对应于简单函数,其实就是指函数值

列向量,就是待求的拟和权重参数。

最优解的详细推导过程

误差方程展开

因为,对于两个任意两个列向量

,所以上式继续等于

, 它的极值(小)在对
求导为零处,所以有

整理得:

为什么?

为什么对列向量求导可以得到上面的等式呢?

假设有以向量为参数的函数

,对向量求导等价于以对向量的每个分量求偏导而形成新的向量:

把向量表达式展开:

对每一分量求偏导有:

所以有

按同样的方法,我们把

展开分别对
的每个分量求偏导(先看第二部分,第三部分为零忽略)

对每一个分量求偏导

合并整理后可得

同理展开第一部分有(利用到

是对称阵的信息)

所以可得

参考

Liang's Blog​wangliangster.github.io
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值