机器学习—线性回归推广及案例

这篇博客介绍了如何通过多项式回归和广义可加模型(GAM)来推广线性回归,以处理数据中的非线性关系。GAM保留了线性模型的可加性和易于推断的性质,但能提高预测精度。文章讨论了GAM的优缺点,并展示了如何使用GAM进行超参数调优和特征贡献分析。
摘要由CSDN通过智能技术生成

引言

   在线性回归中,我们假设因变量与特征之间的关系是线性关系,这样的假设使得模型很简单,但是缺点也是显然的,那就是当数据存在非线性关系时,我们使用线性回归模型进行预测会导致预测性能极其低下,因为模型的形式本身是线性的,无法表达数据中的非线性关系。我们一个很自然的想法就是去推广线性回归模型,使得推广后的模型更能表达非线性的关系。常用的手段有多项式回归与广义可加模型(GAM)。

1.多项式回归

  为了体现因变量和特征的非线性关系,一个很自然而然的想法就是将标准的线性回归模型:
𝑦i=𝑤0+𝑤1𝑥i+𝜖i
转换成一个多项式函数:
𝑦i=𝑤0+𝑤1𝑥i+𝑤2𝑥i+…+𝑤d𝑥di+𝜖
对于多项式的阶数d不能取过大,一般不大于3或者4,因为d越大,多项式曲线就会越光滑,在X的边界处有异常的波动,预测效果的稳定性下降。

多项式回归参数介绍及实例

2.广义可加模型(GAM)

  广义可加模型GAM实际上是线性模型推广至非线性模型的一个框架,在这个框架中,每一个变量都用一个非线性函数来代替,但是模型本身保持整体可加性。GAM模型不仅仅可以用在线性回归的推广,还可以将线性分类模型进行推广。具体的推广形式是:
标准的线性回归模型:
𝑦i=𝑤0+𝑤1𝑥i1+…+𝑤p𝑥ip+𝜖i
GAM模型框架:
𝑦i=𝑤0+∑𝑓j(𝑥ij)+𝜖i

GAM模型的优点与不足
优点:简单容易操作,能够很自然地推广线性回归模型至非线性模型,使得模型的预测精度有所上升;由于模型本身是可加的,因此GAM还是能像线性回归模型一样把其他因素控制不变的情况下单独对某个变量进行推断,极大地保留了线性回归的易于推断的性质。
缺点:GAM模型会经常忽略一些有意义的交互作用,比如某两个特征共同影响因变量,不过GAM还是能像线性回归一样加入交互项 𝑥(𝑖)×𝑥(𝑗) 的形式进行建模;但是GAM模型本质上还是一个可加模型,如果我们能摆脱可加性模型形式,可能还会提升模型预测精度,详情请看后面的算法。

from pygam.datasets import wage
from pygam import LinearGAM, s, f

# 加载数据集(3000, 3) (3000,)
x, y = wage()

# 对前两个特征拟合一个spline term,对第三个特征拟合一个factor term
gam = LinearGAM(s(0) + s(1) + f(2)).fit(x, y)
gam.summary() # 展示模型结构
LinearGAM                                                                                                 
=============================================== ==========================================================
Distribution:                        NormalDist Effective DoF:                                     25.1911
Link Function:                     IdentityLink Log Likelihood:                                -24118.6847
Number of Samples:                         3000 AIC:                                            48289.7516
                                                AICc:                                           48290.2307
                                                GCV:                                             1255.6902
                                                Scale:                                           1236.7251
                                                Pseudo R-Squared:                                   0.2955
==========================================================================================================
Feature Function                  Lambda               Rank         EDoF         P > x        Sig. Code   
================================= ==================== ============ ============ ============ ============
s(0)                              [0.6]                20           7.1          5.95e-03     **          
s(1)                              [0.6]                20           14.1         1.11e-16     ***         
f(2)                              [0.6]                5            4.0          1.11e-16     ***
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值