假设我们要拟合一个一元函数,目前我们知道的自变量及因变量的值是(x1,y1),(x2,y2),⋯ ,(xn,yn)(x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)(x1,y1),(x2,y2),⋯,(xn,yn),而我们要求y=f(x)y=f(x)y=f(x),使得用它作为近似函数时,函数值与真实值的偏差ri=f(xi)−yir_i=f(x_i)-y_iri=f(xi)−yi的平方和∑i=1nri2=∑i=1n(f(xi)−yi)2\sum\limits_{i=1}^nr_i^2=\sum\limits_{i=1}^n(f(x_i)-y_i)^2i=1∑nri2=i=1∑n(f(xi)−yi)2最小。
假如我们已经选定了一类函数(模型)去拟合,现在要确定其中参数的值。比如我们选择了f(x)=eax+bf(x)=e^{ax+b}f(x)=eax+b这种模型(一般用于拟合人口增长),就要确定参数a,ba,ba,b的值。设参数为a1,a2,⋯ ,ama_1,a_2,\cdots,a_ma1,a2,⋯,am,将fff表示为f(x,a1,a2,⋯ ,am)f(x,a_1,a_2,\cdots,a_m)f(x,a1,a2,⋯,am)。损失函数,即偏差的平方和为Q(a1,a2,⋯ ,am)=∑i=1n(f(xi,a1,a2,⋯ ,am)−yi)2Q(a_1,a_2,\cdots,a_m)=\sum\limits_{i=1}^n(f(x_i,a_1,a_2,\cdots,a_m)-y_i)^2Q(a1,a2,⋯,am)=i=1∑n(f(xi,a1,a2,⋯,am)−y

这篇博客介绍了最小二乘法在拟合一元线性函数时的作用,通过数学推导展示了如何找到使得偏差平方和最小的参数值。以一次函数为例,详细阐述了计算过程,并提供了Python代码实现,实现了从数据点中求解最佳拟合直线的斜率和截距。最后,讨论了算法的时间复杂度为线性。
最低0.47元/天 解锁文章
828

被折叠的 条评论
为什么被折叠?



