热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HowInterpretableandTrustworthyareGAMs

这篇文章分析了GAM(Generalizedadditivemodels)系列模型在可解释性方面的一些有趣性质。例如两个模型的正确率等性能指标相近,但是给出的解释却截然不同。那么,

这篇文章分析了GAM(Generalized additive models)系列模型在可解释性方面的一些有趣性质。例如两个模型的正确率等性能指标相近,但是给出的解释却截然不同。那么,在不同的解释模型,我们应该相信哪一个?论文从定性和定量角度系统地分析了一系列GAM算法。通过一系列的实验分析发现Tree-based GAM在稀疏性,保真度和准确性达到了最佳平衡。

如下图展示了再犯罪率预测方面,不同模型给出的不同解释。图中对了EBM-BF, Spline, FLAM等模型,不同模型认为race特征对预测结果具有不同的影响。例如Spline认为该特征取值为Asian和预测结果具有较大的负相关。


GAM 模型系列简介

GAM模型定义


\[g(y) = f_0 + \sum_{j=1}^{D}f_{j}(x_j)

\]

\(f_j\) 可以是任意模型,用于处理单个特征。GAM模型可以在可解释及准确率方面达到比较好的折中。下面将介绍GAM的相关变体。


Explainable Boosting Machine(EBM)

该模型是一个 tree-based model。在该模型中,每个\(f_j\)都是一棵树。EBM序列地学习每个特征,基于Boosting思想,每个特征都被用于修正上一特征给出的误差。训练过程如图所示,如fea1 表示仅仅使用fea1学习模型,而res表示fea1学习之后的误差。需要注意的是,如果忽略iteration,那么模型是在循环的遍历每个特征来学习残差。



EBM可以认为具有 dense feature 特性。为了分析feature sparsity特性,本文基于EBM模型构造了feature sparsity版本,即EBM-BF。该模型贪心地选择能够使用res下降最多的特征,也即是优化fea1的res是会去选择能够使res下降最多的feature,而不是顺序的选择feature。


XGBoost(XGB)

XGB 也是 tree-based GAM。它是基于流行的 boosting package XGBoost.


Spline

Spline 是指分段拟合的意思,它的含义是样条,也即是将区间进行分段拟合。

该模型使用经典的spline basis function 去训练GAM。


Fused LASSO Additive Models(FLAM)

该模型主要使用 Fused LASSO 约束相邻特征权重的差值。


Logistic regression(LR)

逻辑回归是较为经典的模型,可以通过简单的变化将其化为GAM格式。


Training

在模型的训练过程中,每个模型都配备最优的参数以获取最优的性能。文中针对不同类型的模型,使用了相应的最优参数的选择。


How feature sparsity affects fairness

构造稀疏版本的EBM-BF,对比EBM-BF及EBM,分析feature sparsity对可解释性的影响。并选取了两个在研究机器学习公平常用的两个数据集,被用于研究种族歧视和性别歧视:



  • COMPAS: 人口统计信息,犯罪行为,累积犯罪信息等。部分研究认为再犯风险评估具有种族歧视现象。

  • Adult: 来自于1994年的人口普查数据包含年龄,种族,职位,性别等信息,用于预测个人的收入是否能超过50K/yr.部分研究认为收入与性别有关。男性收入普遍高于女性。

论文分析了不同模型给出的(race, gender)-> Reoffense risk scores的关系。以及(race, gender)-> income的关系。如下图所示,可以看出EBM(dense feature)能够学习到race,gender之间的相关性。但是EBM-BF(sparse feature)却忽视了其中的相关性。这与现有的研究不符。



另外,文中也分析了 dense feature model 与 sparse feature model数据中一些从特征角度划分占比较小群体的表现。EBM虽然和EBM-BF在较大群体上具有较小的差别(0.49%),但是在小群体,例如Other, Asian等,差别却达到了1.45%,6.48%。



另外,论文也在Data Anomaly Discovery方面做了较多分析。这里的Data Anomaly主要指两个方面,一个是数据预处理(mean imputaion, 将缺失值使用数据集均值补全),一个是人为干预(human intervention, 这里指医疗措施的加入使得风险与人体特征指标之间关系的突变)。


量化分析 feature sparsity

通过贪心的给GAM模型增加特征,分析出验证集误差随着特征增加的减少曲线,曲线下面积越小,表示误差随着特征增加的下降的越快。


量化分析 Data fidelity

首先将模型损失分解为noise, bias, variance, 并对不同的误差进行分析。


\[E_{D,t}[L(t, y)] = N(x) + B(x) + V(x)

\]

下图展示了具有相近正确率的模型却在bias, variance 方面有着较大的不同。其中bias可以作为代理指标衡量data fidelity。


Data fidelity 与 generator bias

文中提出了一种有趣的分析 data generator 和 模型inductive bias 之间的关系.

基于原始数据的X使用\(GAM_A\)(data generator)生成标签\(\hat{y}\),并使用\((X, \hat{y})\)训练\(GAM_B\), 通过分析\(GAM_A\), \(GAM_B\)之间的曲线关系,进而判断 data generator与 inductive bias 之间关系,以及是否存在 data generator和 inductive bias一致时,GAM_B性能更好的情况。

在量化分析部分,模型使用\(diff = \sum_{j}^{D}|f_{j}(x_j) - g_j(x_j)|\)量化分析\(GAM_A\)\(GAM_B\)之间的关系, 其中\(f_j\in GAM_B, g_j \in GAM_A\)


Worst-case Data fidelity

文中这里用到最坏情况分析。类似于时间复杂度分析中的\(O\)



一个真实的数据集会生成五个半模拟数据集,在每个数据集上,不同模型之间的diff会缩放到一个区间内并作为评分。模型在五个半模拟数据集行的最差表现作为模型的worst-case data fidelity.



推荐阅读
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 本文介绍了brain的意思、读音、翻译、用法、发音、词组、同反义词等内容,以及脑新东方在线英语词典的相关信息。还包括了brain的词汇搭配、形容词和名词的用法,以及与brain相关的短语和词组。此外,还介绍了与brain相关的医学术语和智囊团等相关内容。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
author-avatar
摩西摩西
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有