最小二乘法拟合直线

文章目录

https://www.cnblogs.com/ghj1976/p/zui-xiao-er-cheng-zhi-xian-ni-he.html

  • 教程有推导过程,最后也给出了中学的结论

以二维拟合直线为例。

目标:已知一系列点 ( x i , y i ) (x_i, y_i) (xi,yi),拟合最佳直线 y = a x + b y = ax+b y=ax+b

原理

所谓最小二乘法,"二乘"也就是平方,最小二乘,也就是最小化误差的平方和,通过使误差平方和最小确定函数系数。

在二维的例子中,

e r r = y ^ − y = a x i + b − y i err = \hat{y} - y \\ \hspace{1.55cm}= ax_i+b - y_i err=y^−y=axi+b−yi

那么误差平方和

f = ∑ i = 1 n e r r 2 = ∑ i = 1 n ( a x i + b − y i ) 2 f = \sum_{i=1}^n{err^2} = \sum_{i=1}^n({ax_i+b - y_i})^2 f=i=1∑nerr2=i=1∑n(axi+b−yi)2

如何让这个函数 f f f最小呢?

  • 首先这是一个关于 ( a , b ) (a, b) (a,b)的二元函数

  • 参考一元函数可知,在函数极值处可能存在最值

    • 函数极值可通过一元函数的求导、多元函数求偏导来确定极值点
  • 对于上述 f ( a , b ) f(a, b) f(a,b)函数,观察到两个未知量 a , b a,b a,b的系数都非负,那么猜测这个函数类似开口向上的一元二次函数,在极值点处取到最小值

  • 另有结论:多元函数极值点处,各偏导为0,即:

    ∂ f ∂ x = 0 ∂ f ∂ y = 0 \frac{\partial f}{\partial x} = 0\\ \\\ \\ \frac{\partial f}{\partial y} = 0 ∂x∂f=0 ∂y∂f=0

    带入上面的 f f f式子求得:

    ∑ i = 1 n ( a x i 2 + x i ( b − y i ) ) = 0 ∑ i = 1 n ( b + k x i − y i ) = 0 \sum_{i=1}^n({ax_i^2 + x_i(b - y_i)}) = 0\\ \\\ \\ \sum_{i=1}^n(b+kx_i-y_i) = 0 i=1∑n(axi2+xi(b−yi))=0 i=1∑n(b+kxi−yi)=0

  • 上面的两个求和方程,未知量为 a , b a,b a,b, 将已知的各个 x i , y i x_i,y_i xi,yi带入即可求解

程序求解

上述关于 a , b a,b a,b的求和方程是线性方程组 A X = b AX=b AX=b​,其中:

  • X = ( a , b ) T X = (a, b)^T X=(a,b)T
  • 则 X = A − 1 b X = A^{-1}b X=A−1b

TODO

  • 为什么这个二元函数 f f f的极值点处能求得最值?
相关推荐
硅谷秋水9 小时前
HumanEgo:基于人类第一人称视角数分钟视频的零样本机器人学习
人工智能·机器学习·计算机视觉·机器人
happymaker06269 小时前
LeetCodeHot100——42.接雨水
算法
阿正的梦工坊10 小时前
【Rust】07-错误处理:Option、Result 与 ? 运算符
开发语言·算法·rust
湘美书院--湘美谈教育11 小时前
湘美谈教育AI系列经验集锦:赋能整理聊斋志异大寓言
大数据·人工智能·深度学习·神经网络·机器学习
八解毒剂11 小时前
数据结构-平衡二叉树——对二叉搜索树的优化
数据结构·c++·算法
运行时记录12 小时前
别再手动写提示词了 — SkillOpt 让技能文档自己进化
算法
啦啦啦啦啦zzzz12 小时前
算法总结(二分查找、双指针)
c++·算法
大模型最新论文速读12 小时前
小红书提出 RedKnot:分头处理 kv 缓存,延时降低 60%效果还提升
论文阅读·人工智能·深度学习·机器学习·缓存·自然语言处理
qq_85730581913 小时前
python语法
开发语言·python·算法
DXM052113 小时前
第9期|从机器学习到深度学习:AI遥感解译的进化逻辑
人工智能·算法·计算机视觉