最小二乘法呼之欲出,这就是最小二乘法的原理了,即让误差的平方总和尽可能小。从求一条最接近这五个点的线的问题转化成求最小化误差的问题。
求解那么怎么求呢,继续以上面的为例子。这是一个二次函数。总误差的平方:
根据多元微积分,当
这个时候 ϵ 取得最小值,求的a,b的解为
a,b求出后,这条最接近的线也就出来了
进一步现在假设这条线是 二次函数,结果怎样
我们可以选择不同的 f(x),根据最小二乘法得出不一样的拟合函数。不过选择f(x)还是不能太随意,不然要么不准,要么容易过拟合。代码实现整个思路如下
目标函数:代入生成的x,生成对应的y
def real_func(x): return np.sin(2*np.pi*x)