美文网首页
[算法] Piecewise Polynomial and Sp

[算法] Piecewise Polynomial and Sp

作者: 数据麻瓜 | 来源:发表于2018-11-25 13:05 被阅读0次

    Piecewise的主要思想是将定义域进行切割,然后再每块上分别进行拟合,这样就会得到一个分段函数。考虑1维问题,并且假设将定义域分位3段,模型用示性函数进行表示为:
    f(X)=\sum_{m=1}^6 \beta_m h_m(X)
    h_1(x)=I(X<e_1),h_2(x)=I(e_1 \le X<e_2),h_3(x)=I(e_2 \le X)
    h_4(x)=X I(X<e_1),h_5(x)=X I(e_1 \le X<e_2),h_6(x)=X I(e_2 \le X),但这样会出现一个问题,那就是在切割点的时候函数可能会不连续,为了解决这个问题,我们加入条件限制切割点的左极限和右极限相等,即左右函数在切割点的取值相同。因为加入了新的条件,所以beta之间会多了2个等式,这就等于减少了2个需要估计的变量。但这样的话我们需要改变原来的定义方式,否则如果左右端点的取值确定,线性拟合出的函数唯一确定。所以新的模型为:
    f(X)=\sum_{m=1}^4 \beta_mh_m(X)
    h_1(x)=1,h_2(x)=X,h_3(X)=(X-e_1)_+,h_4(x)=(X-e_2)_+,a_+=max(a,0)
    这个式子中h3和h4起到了类似示性函数的作用,但同样确保了切割点左右极限相等(把e1,e2代入方程简单可证)
    一般piecewise问题,我们会选择在每段上进行3阶拟合,即拟合到x^3,理由是为了确保在全定义域上一,二阶可导(一般在拟合时都会追求一二阶可导,一个是因为可以泰勒展开,另一个是求很多问题(最优化)时会用到一二阶的信息),模型为:
    f(X)=\sum_{m=1}^6 \beta_mh_m(X)
    h_1(x)=1,h_2(x)=X,h_3(x)=X^2, h_4(x)=X^3,h_5(X)=(X-e_1)^3_+,h_6(x)=(X-e_2)^3_+(# region * order)-(# knots) * (order)=3 * 4-2 * 3=6个参数
    更普遍的模型是:
    h_j(x)=x^{j-1},j=1,2,...,M, M是阶数+1,一般M取1(constant piecewise),2(piecewise linear),4(cubic spline)
    h_{M+l}(x)=(X-e_l)^{M-1}_+,l=1,2,...,K,K是节点数

    估计参数:


    image.png

    和线性回归类似的,X^TX有可能不可逆,所以在估计参数时加上一个罚函数,一个典型的罚函数是L2:
    \sum_{i=1}^n (y_i-f(x_i))^2+\lambda \sum_{k=1}^{M+l}\beta_k^2

    243Notes

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


    wiki-smoothspline

    相关文章

      网友评论

          本文标题:[算法] Piecewise Polynomial and Sp

          本文链接:https://www.haomeiwen.com/subject/nofbfqtx.html