非线性拟合/GAM

因为要用到GAM,但是网上资料很少,看到这篇博文,特地学习了一下,相对比较全面,感谢博主的分享,在此转载,希望更多人看到啦!!
原文博客:https://blog.csdn.net/tongweiganglp/article/details/53422324
参考:http://www-bcf.usc.edu/~gareth/ISL/

https://en.wikipedia.org/wiki/Spline_(mathematics)

http://web.as.uky.edu/statistics/users/pbreheny/621/F10/notes/11-4.pdf

http://learning.cis.upenn.edu/cis520_fall2009/index.php?n=Lectures.LocalLearning


从第二章开始,主要介绍的重点都是线性模型。线性模型简单、直观、便于理解,但是现实中,线性假设很可能不能满足实际需求,甚至直接违背实际情况。在第6、7章会介绍一些方法来弥补线性模型的不足,通过降低模型的复杂度和估计量的方差来改善模型。但我们还可以通过另一种方式来改善模型,那就是改变”线性假设”。接下来,我们介绍一些由线性假设下,扩展得到的其他模型。

一,多项式回归

在了解简单线性模型的基础上,很容易理解多项式回归,形如:
yi=β0+β1x11+β2x22+...++βnxnn+eiyi=β0+β1x11+β2x22+...++βnxnn+ei为误差项

多项式回归的优点是,随着变量的增加,可以拟合出异常极端变化的曲线。不过通常来说,多项式回归基本都不会超过四项式。

多项式也可以结合logistics进行回归,形如:
P(yi|xi)=exp(β0+β1x11+β2x22+...++βnxnn)1+exp(β0+β1x11+β2x22+...++βnxnn)P(yi|xi)=exp(β0+β1x11+β2x22+...++βnxnn)1+exp(β0+β1x11+β2x22+...++βnxnn)

二,分段常值函数(step functions)

不论简单线性回归、多项式回归等都是具有全局性的结构。再不考虑全局性回归时,可以用到分段回归。

最简单的分段回归应该就是形如阶跃函数了,阶跃函数也是提供连续变量离散化成有序分类变量的方法。

过程如下:
对X进行分组;
每个组拟合出不同的常量;

假设对X有K个截点,c1,c2,...,ckc1,c2,...,ck
我们生成K+1个新变量:

这些变量有时候也叫虚拟变量或哑变量,然后对这K+1个变量进行拟合,得到形如:

三,基底函数(basis functions)

前两种回归方式,都可以总结为是基底函数的特例。所谓的基底函数是不直接对X进行回归,而是用函数函数变化后的bi(xi)bi(xi)值进行回归,形如:

bj(xi)=xjibj(xi)=xij时,就变成了分段回归;

四,回归样条(Regression Splines)

由基底函数可知,基函数可以是任意的组合形式,不过接下来我们介绍的一种基函数是结合了多项式和分段常值函数的”回归样条”.

什么是样条呢?
样条是一个函数,由多项式构造的分段函数,并且在分段节点处要具有高度平滑的特性,即在分段结点处连续且有连续的导数。

1,三次样条:
一个三次多项式分段回归如下,但是该回归并不满足”平滑的特性”,在结点处可能出现跳跃。

所以,我们要加两个限制条件,让其变成一个样条回归:
1)结点处连续;
2)结点处平滑;

定义,K个节点下的三次样条回归模型:

三次样条下,基函数b()b(),进行拟合

其中,ξiξi是结点:

样条缺点是,有时候受异常点影响较大。需要加上额外的边界约束。

2,如何确定结点的个数与位置

一种方法是在变化相对稳定的区间设置尽量少的结点,在变化相对快速的地方设置尽量多的结点。尽量让每个结点区间内的变量趋于均匀分布。

另一种方法是设置自由度,根据算法自动跑出最优的结点位置。

自由度的个数可以结合交叉验证来验证。

3,与多项式回归的比较

由于样条有结点的帮助,所以在变动很大的数据背景下,仍然可以保证多项式的次数较小。而多项式回归则可能需要更多的次数(如X15X15) 。一句话概括即是样条比多项式回归更灵活。

4,平滑样条曲线

假设我们样条函数为g(x),再求得该函数参数的同时,如何保证样条曲线的平滑性呢?
结合第四章所讲,在求解样条回归的结构风险最小化(RSS+惩罚项)时,把惩罚项设置为”平滑性”相关的表示,形如:

函数在某点处的一阶导数表示的该点曲线的斜率,二阶导数表示的就是斜率的变化率,即,惩罚项即表示为函数曲线在该点的平滑性。

但是,在一段区间内,曲线整体的平滑性要如何衡量呢?我们用到了累计的变化情况,因此可以用来衡量该段区间整体的平滑性了。

超参λ,则是用来衡量惩罚项的重要性占比的。一般用n折交叉验证或者留一交叉验证法来确定。

五,局部回归(Local Regression)

局部回归是另一种拟合非线性模型的方法。

为了实现局部回归,有许多重要步骤需要确定:
- 确定加权函数K
- 确定局部回归的模型:线性/二次/还是常数等,通常是简单模型
- 最重要的还是对“局部”的定义,如何确定点x0x0点近临范围“s”

范围s的值越小,每次拟合的数据区间越小,并且到下一个拟合点到距离也越小。我们可以用交叉验证的方法来确定s,或者人为设定一个值。

1)最简单的局部模型
局部平均(local average)模型是最简单的局部模型,形如:

其缺点是,估计结果并非是连续的。
且与KNN的思想类似,是一种非参数方法。

2)Nadaraya-Watson 核估计(NW)

引用核估计方法,将local average模型进行改造,当K是连续时,f即为连续的。

其局部性参数h可以通过交叉验证的方式计算得到。

不过当x不是均匀分布的时候,该方法将产生偏倚。

3)lowess

前两种方法都属于非参数方法,下面介绍一种结合了非参和参数模型的方法:lowess或者又叫做loess,通过对局部进行线性拟合(非常数值拟合),来解决NW的缺点。

lowess 算法:
1)给定数据集D=(xi,yi)D=(xi,yi)

局部加权logistics回归算法:
1)给定数据集D=(xi,yi)D=(xi,yi)

总结:

六,广义相加模型(Generalized Additive Models)

前面,我们已经介绍了一些方法,作为简单线性模型的扩展。这些方法可以归纳为广义相加模型(GAMs)的框架里,形如:

之所是”相加性的”,是因为我们对于每个变量XjXj.

GAMs的优缺点:
- 可以引入非线性函数fjfj,只能通过手动添加交互项来弥补。

发布了41 篇原创文章 · 获赞 40 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_39805362/article/details/87987460
今日推荐