机器学习|机器学习模型的可解释性

综述 机器学习业务应用以输出决策判断为目标。可解释性是指人类能够理解决策原因的程度。机器学习模型的可解释性越高,人们就越容易理解为什么要做出某些决定或预测。模型可解释性指对模型内部机制的理解以及对模型结果的解释。其重要性体现在:建模阶段,辅助开发人员理解模型,进行模型的对比选择,必要时优化调整模型;在投入运行阶段,向业务方解释模型的内部机制,对模型结果进行解释。比如基金推荐模型,需要解释:为什么向这个用户推荐某支基金。
机器学习流程步骤:收集数据、清洗数据、训练模型、基于验证或测试错误或其他评价指标选择最好的模型。第一步,选择比较小的错误率和比较高的准确率的高精度的模型。第二步,面临准确率和模型复杂度之间的权衡,但一个模型越复杂就越难以解释。一个简单的线性回归非常好解释,因为它只考虑了自变量与因变量之间的线性相关关系,但是也正因为如此,它无法处理更复杂的关系,模型在测试集上的预测精度也更有可能比较低。而深度神经网络处于另一个极端,因为它们能够在多个层次进行抽象推断,所以他们可以处理因变量与自变量之间非常复杂的关系,并且达到非常高的精度。但是这种复杂性也使模型成为黑箱,我们无法获知所有产生模型预测结果的这些特征之间的关系,所以我们只能用准确率、错误率这样的评价标准来代替,来评估模型的可信性。
可解释性的特质:

  • 分类:建模前数据的可解释性、建模阶段模型可解释性、运行阶段结果可解释性
  • 重要性:了解"为什么"可以帮助更深入地了解问题,数据以及模型可能失败的原因
  • 范围:全局解释性、局部解释性、模型透明性、模型公平性、模型可靠性
  • 评估:内在还是事后?模型特定或模型不可知?本地还是全局?
  • 特性:准确定、保真性、可用性、可靠性、鲁棒性、通用性
  • 人性化解释:人类能够理解决策原因的程度,人们可以持续预测模型结果的程度标示。
理解模型可解释性 模型解释作为一个概念仍然主要是理论和主观的。任何机器学习模型的核心都有一个响应函数,它试图映射和解释独立(输入)自变量和(目标或响应)因变量之间的关系和模式。当模型预测或寻找见解时,需要做出某些决定和选择。**模型解释试图理解和解释响应函数所作出的这些决定,即what,why,及how。**模型解释的关键是透明度,质疑能力以及人类理解模型决策的难易程度。模型解释的三个最重要的方面解释如下:
1.是什么驱动了模型的预测? what
我们应该能够查询我们的模型并找出潜在的特征交互,以了解哪些特征在模型的决策策略中可能是重要的。这确保了模型的公平性。
【机器学习|机器学习模型的可解释性】2.为什么模型会做出这个决定? why
我们还应该能够验证并证明为什么某些关键特征在预测期间驱动模型所做出的某些决策时负有责任。这确保了模型的可靠性。
3.我们如何信任模型预测? how
我们应该能够评估和验证任何数据点以及模型如何对其进行决策。对于模型按预测工作的关键利益相关者而言,这应该是可证明且易于理解的。这确保了模型的透明度
在比较模型时,除了模型性能之外,如果模型的决策比其他模型的决策更容易理解,那么模型被认为比其他模型具有更好的可解释性。
可解释性的重要性 了解预测背后的原因在评估信任方面非常重要,如果计划基于预测采取行动,或者选择是否部署新模型,那么这是至关重要的。
无论人类是直接使用机器学习分类器作为工具,还是在其他产品中部署模型,仍然存在一个至关重要的问题:如果用户不信任模型或预测,他们就不会使用它。
可解释性的标准 有一些特定的标准可用于分类模型解释方法。Christoph Molnar,2018年"可解释的机器学习,制作黑箱模型可解释指南"中提到了一个很好的指南。
内在还是事后?
内在可解释性就是利用机器学习模型,该模型本质上是可解释的(模型本身是可解释的,例如线性模型,参数模型或基于树的模型)。
事后可解释性意味着选择和训练黑匣子模型(集合方法或神经网络)并在训练后应用可解释性方法(特征重要性,部分依赖性图)。
模型特定或模型不可知?
特定于模型的解释工具非常特定于内在模型解释方法,这些方法完全依赖于每个模型的功能和特征。
与模型无关的工具与事后方法更相关,可用于任何机器学习模型。这些不可知方法通常通过分析特征输入和输出来操作。根据定义,这些方法无法访问任何模型内部,如权重,约束和假设。
内地还是全局?
这种解释分类讨论了解释方法是解释单个预测还是整个模型行为?或者如果范围介于两者之间?我们将很快讨论全局和地方的解释。
可解释性的范围 全局可解释性
就是试图理解"模型如何进行预测?“和"模型的子集如何影响模型决策?”。要立即理解和解释整个模型,我们需要全局可解释性。全局可解释性是指能够基于完整数据集上的依赖变量和独立(预测变量)特征之间的条件交互来解释和理解模型决策。尝试理解特征交互的重要性始终是理解全局解释的非常重要的一步。当然,在超过二维或者三位之后,可视化特征变得非常困难。因此,经常查看可能影响全局知识模型预测的模块化部分和特征子集会很有帮助。全局解释需要完整的模型结构,假设和约束知识。
局部可解释性
试图理解"为什么模型为单个实例做出具体决策?"和"为什么模型为一组实例做出具体决策?"对于本地可解释性,我们不关心模型的固有结构和假设,我们将其视为黑盒子。为了理解单个数据点的预测决策,我们专注于该数据点并查看该点周围的特征空间中的局部子区域,并尝试基于该局部区域理解该点的模型决策。本地数据分布和特征空间可能表现完全不同,并提供更准确的解释而不是全局解释。局部可解释模型-不可知解释框架是一种很好的方法,可用于模型不可知的局部解释。我们可以结合使用 全局和局部解释来解释一组实例的模型决策。
模型透明度
为试图理解"如何根据算法和特征创建模型?"。我们知道,通常机器学习模型都是在数据特征之上利用算法来构建将输入映射到潜在输出的表示。模型的透明度可能试图了解模型的构建方式以及可能影响其决策的更多技术细节。这可以是神经网络的权重,CNN滤波器的权重,线性模型系数,决策树的节点和分类。但是,由于业务可能不太精通这些技术细节,因此尝试使用不可知的局部和全局解释方法来解释模型决策有助于展示模型透明度。
可解释性的作用
对于想要了解模型如何工作的数据科学家来说,评估模型的准确性通常是不够的。数据科学家通常想要知道模型输入变量如何工作以及魔心的预测如何根据输入变量的值而变化。
我们在进行机器学习建模时,需要思考一个模型的哪些东西是可以解释的?所以有几个问题值得讨论:
1.那些特征在模型看来是最重要的?
2.关于某一条记录的预测,每一个特征是如何影响到最终的预测结果的?
3。从大量的记录整体来考虑,每一个特征如何影响模型的预测?
为什么这些解释信息是有价值的呢?
调试模型用
一般的真实业务场景会有很多不可信赖的,没有组织好的脏数据。你在预处理数据时就有可能加进来了潜在的错误,或者不小心泄露了预测目标的信息等,考虑各种潜在的灾难性后果,debug的思路就尤其重要了。当你遇到了用现有业务知识无法解释的数据的时候,了解模型预测的模式,可以帮助你快速定位问题。
指导工程师做特征工程
特征工程通常是提升模型准确率最有效的方法。特征工程通常涉及到反复地操作原始数据,用不同的方法得到新的特征。有时候你完成FE的过程只用到了自己的直觉。这其实还不够,当你有上百个原始特征的时候,或者当你缺乏业务背景知识的时候,你将会需要更多的指导方向。如何创造出这样优秀的特征呢?如何找到最重要的特征的方法,并且可以发现两个特别相关的特征,当面对越来越多的特征的时候,这些方法就会很重要。
指导数据采集的方向
对于网上下载的数据集你完全控制不了。不过很多公司和机构用数据科学来指导它们从更多方面收集数据。一般来说,收集新数据很可能花费比较高或者不是很容易,所以大家很想要知道哪些数据是值得收集的。基于模型的洞察力分析可以教你很好地理解已有的特征,这将会帮助你推断什么样子的新特征是有用的。
指导人们做决策
一些决策是模型自动做出来的,虽然亚马逊不会用人工来决定在网页上展示给你的商品,但是很多重要的决策是由人做出来的,而对于这些决定,模型的洞察力会比模型的预测结果更有价值。
建立模型和人之间的信任
很多人在做重要决策的时候不会轻易相信模型,除非他们验证过模型的一些基本特性,这当然是合理的。实际上,把模型的可解释性展示出来,如果可以匹配上人们对问题的理解,那么这将会建立起大家对模型的信任,即使是在那些没有数据科学知识的人群中。

    推荐阅读