python函数拟合误差 python拟合曲线误差分析

多项式拟合平方误差怎么求线性模型(二)之多项式拟合
1. 多项式拟合问题
??多项式拟合(polynominal curve fitting)是一种线性模型python函数拟合误差,模型和拟合参数的关系是线性的 。多项式拟合的输入是一维的python函数拟合误差 , 即x=xx=xpython函数拟合误差 , 这是多项式拟合和线性回归问题的主要区别之一 。
??多项式拟合的目标是构造输入xx的MM阶多项式函数,使得该多项式能够近似表示输入xx和输出yy的关系 , 虽然实际上xx和yy的关系并不一定是多项式,但使用足够多的阶数,总是可以逼近表示输入xx和输出yy的关系的 。
??多项式拟合问题的输入可以表示如下:
D={(x1,y1),(x2,y2),...,(xi,yi),...,(xN,yN)}xi∈Ryi∈R
D={(x1,y1),(x2,y2),...,(xi,yi),...,(xN,yN)}xi∈Ryi∈R
??目标输出是得到一个多项式函数:
f(x)=w1x1+w2x2+wixi+...+wMxM+b=(∑i=1Mwixi)+b
f(x)=w1x1+w2x2+wixi+...+wMxM+b=(∑i=1Mwixi)+b
其中MM表示最高阶数为MM 。
??可见在线性拟合的模型中,共包括python函数拟合误差了(M+1)(M+1)个参数,而该模型虽然不是输入xx的线性函数,但却是(M+1)(M+1)个拟合参数的线性函数,所以称多项式拟合为线性模型 。对于多项式拟合问题,其实就是要确定这(M+1)(M+1)个参数,这里先假设阶数MM是固定的(MM是一个超参数,可以用验证集来确定MM最优的值,详细的关于MM值确定的问题 , 后面再讨论),重点就在于如何求出这(M+1)(M+1)个参数的值 。
2.优化目标
??多项式拟合是利用多项式函数逼近输入xx和输出yy的函数关系,通过什么指标来衡量某个多项式函数的逼近程度呢?(其实这就是误差/损失函数) 。拟合/回归问题常用的评价指标是均方误差(在机器学习中的模型评估与度量博客中,python函数拟合误差我进行了介绍) 。多项式拟合问题也同样采用该评价指标 , 以均方误差作为误差/损失函数,误差函数越?。?模型越好 。
E(w,b)=1N∑i=1N[f(xi)?yi]2
E(w,b)=1N∑i=1N[f(xi)?yi]2
??系数1N1N是一常数,对优化结果无影响 , 可以去除,即将均方误差替换为平方误差:
E(w,b)=∑i=1N[f(xi)?yi]2
E(w,b)=∑i=1N[f(xi)?yi]2
?? 到这里,就成功把多项式拟合问题变成了最优化问题,优化问题可表示为:
argminw,bE(w,b)
arg?minw,b?E(w,b)
即需要求得参数{w1,...,wM,b}{w1,...,wM,b}的值,使得E(w,b)E(w,b)最小化 。那么如何对该最优化问题求解呢?
3. 优化问题求解
3.1 求偏导,联立方程求解
?? 直观的想法是 , 直接对所有参数求偏导 , 令偏导为0,再联立这M+1M+1个方程求解(因为共有M+1M+1个参数,故求偏导后也是得到M+1M+1个方程) 。
E(w,b)=∑i=1N[f(xi)?yi]2=∑i=1N[(w1x1i+w2x2i+wixji+...+wMxMi+b)?yi]2
E(w,b)=∑i=1N[f(xi)?yi]2=∑i=1N[(w1xi1+w2xi2+wixij+...+wMxiM+b)?yi]2
利用E(w,b)E(w,b)对各个参数求偏导,如下:
?E(w,b)?wj?E(w,b)?b=2∑i=1N[(w1x1i+w2x2i+wixji+...+wMxMi+b)?yi]xji=2∑i=1N[(w1x1i+w2x2i+wixji+...+wMxMi+b)?yi]
?E(w,b)?wj=2∑i=1N[(w1xi1+w2xi2+wixij+...+wMxiM+b)?yi]xij?E(w,b)?b=2∑i=1N[(w1xi1+w2xi2+wixij+...+wMxiM+b)?yi]
求导之后,将各个点(xi,yi)(xi,yi)的值带入偏导公式,联立方程求解即可 。
??针对该解法,可以举个例子详细说明,比如有两个点(2,3),(5,8)(2,3),(5,8),需要利用二阶多项式f(x)=w1x+w2x2+bf(x)=w1x+w2x2+b拟合 。求解过程如下:
该二阶多项式对参数求偏导得到
?E(w,b)?wj?E(w,b)?b=2∑i=12[(w1x1i+w2x2i+b)?yi]xji=[(w1x1+w2x21+b)?y1]xj1+[(w1x2+w2x22+b)?y2]xj2=2∑i=12[(w1x1i+w2x2i+b)?yi]=[(w1x1+w2x21+b)?y1]+[(w1x2+w2x22+b)?y2]
?E(w,b)?wj=2∑i=12[(w1xi1+w2xi2+b)?yi]xij=[(w1x1+w2x12+b)?y1]x1j+[(w1x2+w2x22+b)?y2]x2j?E(w,b)?b=2∑i=12[(w1xi1+w2xi2+b)?yi]=[(w1x1+w2x12+b)?y1]+[(w1x2+w2x22+b)?y2]

推荐阅读