回归样条(Regression Splines)

我们之前介绍了线性回归,在面对非线性问题的时候线性回归是行不通的,所以就有了多项式回归,可是多项式回归也有缺点,比如当多项式的幂较高时,可能特征的一个微小变化都会被很大地方法,也就是很容易过拟合,另一方面它是非局部的,也就是说我改变一下训练集上某一点的y值,即使其他离他很远的点也会受到影响。

为了改进多项式回归的缺点,就有了回归样条法(regression splines)(样条指的是一种分段的低阶逼近函数),主要是把训练集不再堪称一个整体,而是把它划分成一个个连续区间,划分的点称为节点(knot),并用单独的模型(线性函数或者低阶多项式函数,一般称为分段函数,piecewise function)来拟合。很明显,节点越多,模型就越灵活。

事实上,如果我们只是把数据划分一个个区间然后各自用多项式拟合是不够的,因为根据结果我们会发现函数图像的整体拟合效果一点都不好,第一个问题是节点之间是不连续的,所以我们需要加上一个条件,那就是节点函数值相等。除此之外,还需要节点曲线是平滑的,所以第二个条件是节点一阶导数相等,最后,实验证明,如果节点二阶导数也相等,拟合出来的曲线将会更平滑,也会更接近真实的曲线,所以这就是我们对多项式的一些约束条件。

最后还有一个问题,那就是对于数据边界(数据的两侧),边界区域的数据是相对较少的,函数曲线往往容易过拟合,这个问题也存在于样条中,为了使得多项式能够更平滑地扩展到边界节点之外,自然样条(在边界区域增加一个线性约束)可以解决这个问题。

再简单介绍一下节点怎么决定数量。一种可行的办法是在数据比较剧烈变化的位置设置节点,第二种是在数据变化复杂的地方多设置节点,另外还可以平均分配节点,最后一种则是更常用的,交叉验证,针对不同数量的节点,划分训练集测试集,分析模型性能,得出最好的节点数。

最后简单说一下多项式回归和回归样条的比较,一般来说,回归样条可以比多项式回归得到更好的输出,因为多项式回归需要更高次的多项式才能得到更好的拟合效果,而回归样条因为它的特性,更容易就能获得更好的拟合效果,而且对局部的分析比多项式回归更好,但是我也认为相对的回归样条缺少了对整体的一种估计,只是一个个局部进行分析。

最后的最后,再说一点,回归样条,或者说多样式样条,它确实可以解决很多问题,可是理论和实践都表明直接用最小二乘法求解参数很容易过拟合,为了改进这个过拟合的问题,会在最小二乘函数(损失函数)加上惩罚项,这个就叫做光滑样条(Smoothing Splines)。可是,如果把回归样条应用在机器学习中,这个操作就是很常规的正则化。所以说,模型的名称千千万万种,一点小变动就可以说是一种新模型,最重要的还是要明白这些模型之间的关联,看穿模型的本质。

想浏览更多关于数学、机器学习、深度学习的内容,可浏览本人博客

你可能感兴趣的:(机器学习)