英文题目:Intelligible Models for Classification and Regression
中文题目:可理解的分类和回归模型
论文地址:https://www.doc88.com/p-41099846725043.html
领域:模型可解释性,广义加性模型,机器学习
发表时间:2012
作者:Yin Lou,Rich Caruana(模型可解释性大佬),康耐尔大学,微软
出处:KDD
被引量:256
代码和数据:https://github.com/interpretml/interpret
阅读时间:220819

读后感

加性模型的准确性优于线性模型,差于梯度决策树和深度学习模型.它在模型精度和可解释性间取平衡.其核心原理是针对单个特征建立模型(可以是非线性模型),然后把这些模型加在一起形成最终模型.本文描述了具体实现方法.

介绍

复杂模型虽然预测精度高,但可解释性较差,因为很难判断单个特征在复杂模型中的贡献度.

本文目标是建立尽量准确且可解释的模型,让用户可以理解每个特征的贡献度.使用广义加性模型(GAMs)方法,其基本算法如下:

将 g 称为 link 函数,f 称为 shape 函数,g 和 f 可以是任何函数,比如非线性函数,对于单个特征建模 f,可以有很高的复杂度,但特很之间组合比较简单,只是简单的叠加关系.

比如下式就是一个加性模型的示例:
y = x 1 + x 2 2 + x 3 + l o g ( x 4 ) + e x p ( x 5 ) + 2 s i n ( x 6 ) + ϵ y=x_1+x^2_2+\sqrt{x^3}+log(x_4)+exp(x_5)+2sin(x_6)+\epsilon y=x1+x22+x3 +log(x4)+exp(x5)+2sin(x6)+ϵ
对应的每个特征影响的图-1所示,可以分别看到每个特征对y的影响.

每个shape函数都梲以是非线性的,这也是加性模型效果优于线性模型的原因.表-1展示了各种模型的基本公式:

方法

设数据集中有N个实例,每个实例有n个特征{xi1…xin},标签为yi.目标是构建函数F(x),最小化损失函数L(y,F(x)).

具体实现方法涉及两个维度,对于单特征训练的shape模型,一般使用样条函数或者树模型(图-4中的纵向);对于shape模型的组合训练方法(图-4中的横向),即如何训练整体模型,则可选用最小二乘法,boosting和backfitting方法.

shape函数

文中提到的shape函数有样条函数和集成树函数,所有shape函数只涉及单个特征作为输入.

样条函数

样条是一种特殊的函数,由多项式分段定义.比如三次样条中的每一段都由三次多项式表示,且整体是一条光滑的曲线,三次多项式形如:
y = a i + b i x + c i x 2 + d i x 3 y=a_i+b_ix+c_ix^2+d_ix^3 y=ai+bix+cix2+dix3
文中的样条插值是设置维度为d的回归样条函数:

树和集成树模型

使用二叉树和集成二叉树方法,用叶节点数描述树的复杂度.树模型的每个分叉是对同一特征的不同值范围进行切分.支持的树包括:Single Tree,Bagged Trees,Bossted Trees,Bossted Baaged Trees.后面的实验中将首字体作为其方法的缩写.

训练整体模型

以用以下方法训练整体模型,用最小二乘训练样条函数,用梯度提升和回修训练树模型.

最小二乘法

最小二乘法可以很好的训练线性模型,这里将bk(x)看成特征,训练拟合参数Bk.另外,还加入了平滑系数 λ.实验中将该方法称为惩罚最小二乘,记作P-LS.对于逻辑回归问题,使用样条被简化为用不同的基拟合逻辑回归,方法称为惩罚迭代重加权最小二乘,记作 P-IRLS。

Boosting梯度提升法

在每一个迭代中,循环地依次训练所有特征,具体方法如下:

  • line 1: 将三个shape函数初值设为 0
  • line 2: 一共10次迭代:M=10
  • line 3: 遍历所有特征:假设一共三个特征n=3
  • line 4: 这里构造了一个数据集合R,对于所有实例 i=1…N,它的自变量是实例中是第j个特征xij,因变量是将每个实例i代入当前所有 f 后计算预测值,然后计算预测与真值y的残差.
  • line 5:学习Shape函数S,它利用第j个特征x,训练S(x)用于拟合R,之所以是Boosting,是因为它拟合的不是y本身,而是拟合残差
  • line 6:利用拟合的残差函数S调整更新第 j 个特征拟合函数 fj

Backfitting回修法

回修法是之前拟合加性模型的主流方法,它与梯度提升方法非常类似,差别在于第4行和第6行,在第4行,回修法的fk不包含它自己本身对应的第fj;而第6行,它直接用S替换fj.对比可以看出梯度提升拟合的是残差,而回修法拟合的是fj本身,因此,可能随着数据不同,回修的波动相对比较大,最终可能验证以收敛.

实验

图-3对比了梯度提升和回修方法对回归(a,b,c)和分类(d,e,f)的建模效果,可以看到,叶节点过多,在训练集中效果好,但在测试集上效果差,回修法效果相对不稳定.

图-5对比了使用不同Shape函数的效果,样条函数由于追求拟合曲线的平滑,在数据较少的位置拟合效果较差,这可能是由于样条过于平滑,学不出细节.相对来说树模型效果更好.

表-5展示了主实验结果,这里使用了6个回归的数据集,从实验结果的均值可以看到,复杂模型效果最好,加性模型中,BST-bagTRX,即梯度提升的Bagging树,X表示随机设置叶节点数.

比较有意思的是,在BST-bagTR类中,叶节点2-4,效果最好,这可能是由于叶节点太多可能造成过拟合.

图-6展示了回归中各个模型的偏差和方差,偏差描述了模型预测结果和实际y之间的差异,方差用于评价子学习器学出结果的一致性,以评价稳定性(常用交叉验证的方法测量方差).可以看到对于所有数据集,位置于中间偏左的梯度提升+树模型效果都最好.

扩展阅读

GA2M

Accurate Intelligible Models with Pairwise Interactions
同一作者写的另一篇基于GAM的优化,将基于单个特征的加性模型扩展为基于特征组合的加性模型.核心公式如下:

其核心在于如何选择和优化特征组合,实验证明在有些情况下比lightgbm更好.