数据科学和AI领域的发展催生了不同的模型,这些模型可以解决不同的问题。随着用例和问题变得越来越复杂,模型的可解释性也越来越复杂。模型解释框架可帮助数据科学团队理解不同的模型。这些框架还有助于进一步研究模型,以了解模型如何做出预测,并能够识别训练期间未发现的潜在过度拟合或偏差。从机器学习模型到深度学习模型,采用这些框架有助于团队检查、解释和细化模型。
目录
LIME
LIME是许多解释框架的超集。这是一种新的解释技术,它通过学习一个可解释模型来解释任何分类器的预测。它通过使用局部可解释的代理模型访问基本估计器(模型)的行为来实现此目的。这些代理模型是可解释的模型(如线性回归模型或决策树),它们根据原始黑盒模型的预测进行学习。LIME没有尝试去拟合一个全局代理模型,而是专注于拟合局部代理模型来解释为什么会做出单个预测。LIME是GitHub上的一个开源框架。
ELI5
ELI5是一个Python库,它允许使用统一的API可视化和调试各种机器学习模型。它内置了多个机器学习框架的支持,并提供了一种解释黑匣子模型的方法。ELI5可以在分类或回归模型的微观和宏观级别上执行。它可以在微观上检查模型的单个预测,并试图找出为什么模型会做出这样的决定,或者在宏观上检查模型参数,并试图找出模型的全局工作方式。简单来说,ELI5显示了每个特征的权重,描述了它对所有树的最终预测决策的影响程度。ELI5也是GitHub上的一个开源框架。
AllenNLP Interpret
NLP是数据科学的一个子集,并且发展非常迅速。AllenNLP Interpret是一个用于解释NLP模型的灵活框架。AllenNLP Interpret提供了一个构建在AllenNLP之上的用于交互式模型解释的工具包。该工具包使得将基于梯度的显著性图和对抗性攻击应用于新模型以及开发新的解释方法变得很容易。AllenNLP Interpret包含三个组件:一套适用于大多数NLP模型的解释技术、用于开发新解释方法的api(例如,用于获取输入梯度的api)以及用于可视化解释结果的可重用前端组件。AllenNLP团队提供了各种高端演示、代码和教程。
Skater
Skater是一个统一的框架,支持对所有形式的模型进行模型解释,以帮助构建一个可用于真实世界用例的可解释的机器学习系统。模型解释可以概括为以下几类:
1. 事后解释:给定一个训练来解决监督学习问题的黑匣子模型(X - > Y,其中X是输入,Y是输出)。函数返回一个可视化表示(或文本表示),以帮助理解模型的内部工作,或者为什么某个结果比其他结果更有利。它也可以被称为检查黑匣子或逆向工程。
2. 可解释模型:对于监督学习问题,预测模型(解释函数)具有透明的设计,可以在全局和局部进行解释。
SHAP
SHapley Additive exPlanations是一种博弈论方法,用于解释任何机器学习模型的输出。SHAP为每个特征分配一个特定预测的“权重”。该框架的组成部分包括:识别一种新的可加性特征权值度量,理论结果表明该类中存在一个具有一组理想属性的唯一解。然后,SHAP值尝试将模型输出(函数)解释为将每个特征引入到条件期望中的效果的总和。对于非线性函数,引入特征的顺序很重要。SHAP值由所有可能排序的平均值得出。SHAP支持XGBoost、LightGBM、CatBoost、scikit-learn和pyspark树模型的快速c++实现。
最后
有许多框架可以用于模型解释,这些框架都有它们自己的特点和亮点。没有什么灵丹妙药。通常年轻的数据科学团队在模型构建期间选择一个框架,以使管理人员和非技术人员更容易地进行模型解释。随着团队变得更加成熟,会遇到更加复杂的模型,最终,他们可能会构建自己的解释框架。