[算法] Piecewise Polynomial and Splines

Piecewise的主要思想是将定义域进行切割,然后再每块上分别进行拟合,这样就会得到一个分段函数。考虑1维问题,并且假设将定义域分位3段,模型用示性函数进行表示为:


,但这样会出现一个问题,那就是在切割点的时候函数可能会不连续,为了解决这个问题,我们加入条件限制切割点的左极限和右极限相等,即左右函数在切割点的取值相同。因为加入了新的条件,所以之间会多了2个等式,这就等于减少了2个需要估计的变量。但这样的话我们需要改变原来的定义方式,否则如果左右端点的取值确定,线性拟合出的函数唯一确定。所以新的模型为:

,
这个式子中h3和h4起到了类似示性函数的作用,但同样确保了切割点左右极限相等(把e1,e2代入方程简单可证)
一般piecewise问题,我们会选择在每段上进行3阶拟合,即拟合到,理由是为了确保在全定义域上一,二阶可导(一般在拟合时都会追求一二阶可导,一个是因为可以泰勒展开,另一个是求很多问题(最优化)时会用到一二阶的信息),模型为:

(# region * order)-(# knots) * (order)=3 * 4-2 * 3=6个参数
更普遍的模型是:
, M是阶数+1,一般M取1(constant piecewise),2(piecewise linear),4(cubic spline)
,K是节点数

估计参数:


image.png

和线性回归类似的,有可能不可逆,所以在估计参数时加上一个罚函数,一个典型的罚函数是L2:

243Notes

或者是smooth spline,用另一种罚函数


wiki-smoothspline

你可能感兴趣的:([算法] Piecewise Polynomial and Splines)