广义加性模型(GAMs)
作为回归家族的一个扩展,广义加性模型(GAMs)是最强大的模型之一,可以为任何回归问题建模!!
线性模型简单、直观、便于理解,但是,在现实生活中,变量的作用通常不是线性的,线性假设很可能不能满足实际需求,甚至直接违背实际情况。1985 年 Stone 提出加性模型 (additive models) ,模型中每一个加性项使用单个光滑函数来估计,在每一加性项中可以解释因变量如何随自变量变化而变化,解决了模型中自变量数目较多时 ,模型的估计方差会加大的问题。1990 年,Hastie 和 Tibshirani 扩展了加性模型的应用范围 ,提出了广义加性模型(generalized additive models)。
你一定用过线性回归或者多项式回归但说实话,所以让我们先从线性回归方程开始:
y = ax+ bx + cx+ …+ zx+ C
广义加性模型(GAMs)是这个样子的:
g(y) = wF(x) + wF(x) + wF(x) …wF(x) + C
可以看到,除了我们的自变量X被函数嵌套以外,我们的因变量Y也就是预测也不是“ y”本身而是一个函数g(y)。 而w,w…w是每个自变量函数的权重
F是什么?它是一组每个特征变量分别建模为目标变量的函数,称为平滑函数(smoothing functions),将所有这些函数加起来预测g(y)。
这个F的数学表示是什么呢?F对于不同的特征变量可以采用不同的表示。对于一个特征变量,它可以是多项式方程,对于另一个特征变量,它可以是径向基函数(RBF)。
最常见的平滑函数是回归样条函数(Regression Splines),除此以外其他的基函数也可以使用例如RBF,Tensor,(来自https://fda.readthedocs.io/en/latest/modules/autosummary/skfda.representation.basis.Tensor.html)等。
这里又出现了一个新名词 “基函数”(Basis functions):基函数是一组可以用来表示复杂非线性函数的简单函数。例如假设我们有f= 5 + 2x,为了表示这个复杂的非线性函数,我们可以使用下面的基函数集:f(x)= 1, f(x)=x, f(x)= x,因此就得到了f= 5f(x) + 0f(x) + 2*f(x)
基函数有很多种,最常见的可能就是RBF(SVM中的核函数)
样条函数(Splines):样条是基函数的一种,它是由多项式分段定义的函数。分段多项式基本上就是对变量的不同区间有不同表示的多项式。看看下面这个例子:
m*x+a → x<5
m*x+ n*x → 5<x<10
p*x → x>10
根据X的不同区间改变多项式的表示,这样的多项式称为分段多项式。根据样条的程度,我们可以有以下可能的基函数,来构造原始的复杂函数
0阶:基函数= f(x) = 1
1阶:基函数= f(x)=1, f(x)=x
2阶:基函数= f(x)=1, f(x)=x, f(x)=x
有了上面的基础,我们开始说明样条回归。它是一组基础函数集的加权和,其中使用的基函数是样条函数。
F(x) = Σ wb(x)
其中
F=第n个特征的第n个平滑函数(还记得上面GAMs的方程吗?)
b=样条回归的第k个基函数(因为样条回归由多个基函数组成)
σ= 从k=0→用于表示特征变量和目标变量之间关系的总基函数的总和。
所以GAMs方程是(如果只使用样条回归)
g(y) = Σ wb(x) + Σ wb(x) + Σ wb(x) … + C
这里的k, m, n 是不同特征的不同样条函数的阶。公式已经推导出来了,还剩最后一个问题在GAMs方程中g()是什么?为什么我们预测的是g(y)而不是“y”本身?
该解释需要从广义线性模型(GLM)的定义中寻找。 一旦特征变量和目标变量之间的关系不是线性的,我们用于线性回归的线性方程就需要一些修改将目标映射到特征变量,这里的映射有可能会是非线性关系,所以就需要将目标限制在某个特定范围内,也就是将y变为g(y)。
这里的g(y)被称为联系函数(link function ):它的作用就是保持目标变量与特征变量之间的线性关系。正如模型的名字,“广义”这个词描述了GAMs可以满足不同的回归场景,这些场景不需要遵循线性回归的基本假设,所以这个g()可以是任何函数!!
既然是广义的,那么如果要将一个线性回归方程建模为GAM,我们只需要将:
1、联系函数设置成恒等函数
2、F设置成恒等函数。
g(y) = wF(x) + wF(x) + wF(x) …wF(x) + C
也就是说g(x)=x 并且F(x) =x,那么公式就变成了
y = wx + wx + wx …wx
这不就是我们的线性回归方程么
如果你想更详细的研究GAM,那么这里推荐一个库pygam,他是Python中的GAM的实现,它的文档非常详细,如果有兴趣的话建议仔细阅读:https://pygam.readthedocs.io/en/latest/notebooks/tour_of_pygam.html
https://avoid.overfit.cn/post/ef3f8a5743d84b4d879b74cd92bb12d5
作者:Mehul Gupta
举报/反馈
最近更新人物资讯
- 青年节专题时文精选,1个专题+5篇模板+12篇范文+1个作文合集(角度+金句+精
- 最新质量管理体系基本要求(五篇)
- 赤坂丽颜值巅峰之作,禁忌之爱代表作品-高校教师成熟
- [王仲黎]人茶共生:布朗族茶文化话语中的生态伦理
- 北京文艺日历 06.12~06.18
- 有什么好看的少女漫画推荐?
- 为了孩子陪睡校长,请别拿这电影洗白
- 当贝市场tv版apk下载
- 茉
- BBC评出有史以来美国最伟大的100部电影
- 泰山岱庙古建筑之文化特色初探
- 阴阳五行学说范文
- 2022伦敦大学学院Bartlett建筑学院Part2毕业展
- 观看平凡英雄观后感1000字
- 纽约大都会博物馆(二)古希腊艺术与神话
- 收藏 | 带你穿越500年,看一看这50位著名艺术家
- ab血型女人的性格
- 春节活动策划方案
- 为什么孕妇生产有危险时,部分丈夫和婆婆会选择保小孩?
- 《员工自发管理的儒家修为智慧》
- 菲律宾尺度片的全明星阵容,菲律宾女人质量这么高的吗?
- 文学课 | 韩少功:文学与记忆
- 《人性的污秽》中的伦理道德世界
- 宋惠莲背夫和西门庆幽会后自缢,看透情色表象下的死亡真相
- 秋波多少画(五代词全集)