0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用SHAP实现机器学习模型的输出预测

汽车玩家 来源:人工智能遇见磐创 作者:人工智能遇见磐创 2020-05-04 18:09 次阅读

解释产生特定NBA球员预测薪水的特征(github)

利用SHAP实现机器学习模型的输出预测

我最喜欢的库之一是SHAP,它是解释机器学习模型生成的输出不可或缺的工具。 SHAP是几种不同的当前解释模型的顶点,并且通过为每个特征分配重要性值来表示用于解释模型预测的统一框架。反过来,可以绘制这些重要性值,并用于产生任何人都可以轻易解释的漂亮可视化。在您阅读时,您会注意到主题是可解释性,以及为什么它在机器学习中如此迫切。

在本文中,我提供了一个外行人对其作者Scott Lundberg和Su-In Lee的原始论文的评论

目的

线性模型易于解释。 考虑用于预测NBA球员薪水的经典线性回归模型(假设薪水完全基于每场比赛得分):

利用SHAP实现机器学习模型的输出预测

我们简单地将其解释为β1,即X对Y单位增加的平均影响。换句话说,如果凯文杜兰特得到27.5分,那么我们所要做的就是乘以β1来预测他的薪水。 使用线性模型,很明显模型如何达到预测。

但是神经网络呢,那里有重复的矩阵乘法和激活函数? 我们如何在输出的上下文中解释这一点?

利用SHAP实现机器学习模型的输出预测

随着我们转向更复杂的模型,具有更高的准确性,我们发现越来越难以解释这些模型如何产生预测。 由于以下几个原因,这是一个岌岌可危的困境:

·模型偏差是一个重要问题,因为它们最终可能会对决策产生不公平的影响。 一些数据存在内在偏差,特别是在涉及种族和性别偏见时,这会对模型的预测产生负面影响。 由于没有好的方法来解释模型如何做出决定,因此很难确定这些固有的偏见。

·模型改进也很困难如果您不知道要改进什么。当然,您可以调整超参数,直到获得最佳分数,但您拥有的数据类型更为重要。了解模型中不同特征的价值可为数据收集提供有价值的反馈,告知我们哪些类型的数据最重要.

·用户信任对于采用人工智能系统非常重要。 在人工智能治理中心最近的一份报告中,作者报告说:"有更多的美国人认为高级机器智能会比那些认为对人类有益的人有害。"复杂模型的可解释性有助于 更好的理解,建立模型如何做出决策的直觉,并最终产生用户信任。

添加功能归因方法

为了解释更复杂的模型,我们需要一个更接近原始模型的简单解释模型。

假设我们有一个形式为f(x)的复杂模型,那么解释模型g(z')≈f(x)。

利用SHAP实现机器学习模型的输出预测

稍微分解g(z'),我们将一些效应φᵢ归因于每个特征z'。 通过总结所有这些效果及其特征,我们可以近似原始模型的输出。 这被定义为附加特征归属方法。 事实证明,其他当前的解释模型遵循相同的解释模型,允许它们全部统一到一个单一的框架中。

附加特征归属方法的属性

1.局部精度:最重要的属性之一是解释模型能够匹配原始模型的输出。

2.缺失:如果缺少特征,则该特征没有效果,或φᵢ= 0。

3.一致性:如果模型发生变化,使得特征贡献增加或保持不变,那么特征属性或φᵢ不应减少。

这导致我们SHAP值,它统一了以前的方法,并展示了上述属性。

SHAP值

SHAP值(φᵢ)用于描述特征的重要性。 请考虑以下图表:

利用SHAP实现机器学习模型的输出预测

f(x)是模型预测的输出,E[f(z)]是如果没有特征则预测的基值。 换句话说,E[f(z)]只是平均模型输出。

当我们包括一个特征x 1,然后φ1,解释我们如何从基值到新的预测值,现在由E [f(z)|给出。 z 1 = x 1]。 对剩余的变量x 1,x 2,x 3重复这个过程,估计φ1,φ2和φ3的SHAP值,显示模型最终如何到达预测输出f(x)。

不同口味的SHAP(different favours of SHAP)

SHAP有多种实现方式,每种方式都适用于特定的模型类型,可以实现更快的逼近。

·TreeExplainer

TreeExplainer专为树集合方法开发,如XGBoost,LightGBM或CatBoost。

·DeepExplainer

DeepExplainer是为深度学习模型开发的,支持TensorFlow / Keras。

·GradientExplainer

GradientExplainer也是为深度学习模型中的SHAP值而开发的,但速度比DeepExplainer慢,并且做出了不同的假设。 此方法基于Integrated Gradient归因方法,并支持TensorFlow / Keras / PyTorch。

·KernelExplainer

KernelExplainer使用加权线性回归近似任何类型模型的SHAP值。

使用特定于模型类型的算法(TreeExplainer,DeepExplainer)而不是通用KernelExplainer更快更有效。

总结

作者发现人类解释和SHAP解释之间的关联比任何其他方法更强,这表明了SHAP的强大和直观性。 计算出的SHAP值很容易在美观,简单的图中显示,这些图解释了特征如何影响特定预测。 这使得SHAP成为一个令人信服的工具,可以自信地解释和解释任何模型。

有关如何实现SHAP的教程,请查看我的笔记本,看看我们如何解释渐变提升树的预测结果。 SHAP github还提供了很多资源,可以提供有关如何实现DeepExplainer,KernelExplainer和其他有用功能的更多示例。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4446

    浏览量

    90718
  • 机器学习
    +关注

    关注

    66

    文章

    8094

    浏览量

    130513
收藏 人收藏

    评论

    相关推荐

    如何使用TensorFlow构建机器学习模型

    在这篇文章中,我将逐步讲解如何使用 TensorFlow 创建一个简单的机器学习模型
    的头像 发表于 01-08 09:25 323次阅读
    如何使用TensorFlow构建<b class='flag-5'>机器</b><b class='flag-5'>学习</b><b class='flag-5'>模型</b>

    如何基于深度学习模型训练实现工件切割点位置预测

    Hello大家好,今天给大家分享一下如何基于深度学习模型训练实现工件切割点位置预测,主要是通过对YOLOv8姿态评估模型在自定义的数据集上训
    的头像 发表于 12-22 11:07 334次阅读
    如何基于深度<b class='flag-5'>学习</b><b class='flag-5'>模型</b>训练<b class='flag-5'>实现</b>工件切割点位置<b class='flag-5'>预测</b>

    如何基于深度学习模型训练实现圆检测与圆心位置预测

    Hello大家好,今天给大家分享一下如何基于深度学习模型训练实现圆检测与圆心位置预测,主要是通过对YOLOv8姿态评估模型在自定义的数据集上
    的头像 发表于 12-21 10:50 646次阅读
    如何基于深度<b class='flag-5'>学习</b><b class='flag-5'>模型</b>训练<b class='flag-5'>实现</b>圆检测与圆心位置<b class='flag-5'>预测</b>

    LabVIEW进行癌症预测模型研究

    LabVIEW进行癌症预测模型研究 癌症是一种细胞异常增生的疾病。随着年龄的增长,细胞分裂速度放缓,但癌细胞会失去控制地不断分裂,形成可能良性或恶性的肿瘤。 2012年的国际癌症数据显示,新发癌症
    发表于 12-13 19:04

    基于机器学习的车位状态预测方法

    本发明公开一种基于机器学习的车位状态预测方法,基于历史数据,建立回归决策树模型进而构建改进决策树模型,对每个区域的停车率进行
    发表于 09-21 07:24

    机器学习模型评估指标

    机器学习模型指标在机器学习建模过程中,针对不同的问题,需采用不同的模型评估指标。
    发表于 09-06 12:51 435次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b><b class='flag-5'>模型</b>评估指标

    机器学习模型类型分类

     机器学习按照模型类型分为监督学习模型、无监督学习模型
    的头像 发表于 09-05 11:45 1296次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b><b class='flag-5'>模型</b>类型分类

    机器学习有哪些算法?机器学习分类算法有哪些?机器学习预判有哪些算法?

    有许多不同的类型和应用。根据机器学习的任务类型,可以将其分为几种不同的算法类型。本文将介绍机器学习的算法类型以及分类算法和预测算法。
    的头像 发表于 08-17 16:30 1368次阅读

    机器学习算法汇总 机器学习算法分类 机器学习算法模型

    机器学习算法汇总 机器学习算法分类 机器学习算法模型
    的头像 发表于 08-17 16:11 701次阅读

    机器学习和深度学习的区别

      机器学习是一种方法,利用算法来让机器可以自我学习和适应,而且不需要明确地编程。在许多应用中,需要机器
    发表于 08-02 17:36 369次阅读

    机器学习构建ML模型实践

    实践中的机器学习:构建 ML 模型
    的头像 发表于 07-05 16:30 446次阅读

    使用机器学习进行预测

    电子发烧友网站提供《使用机器学习进行预测.zip》资料免费下载
    发表于 07-04 10:22 0次下载
    使用<b class='flag-5'>机器</b><b class='flag-5'>学习</b>进行<b class='flag-5'>预测</b>

    机器学习模型:用于使用边缘脉冲软件预测大象的行为

    电子发烧友网站提供《机器学习模型:用于使用边缘脉冲软件预测大象的行为.zip》资料免费下载
    发表于 06-29 14:47 0次下载
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b><b class='flag-5'>模型</b>:用于使用边缘脉冲软件<b class='flag-5'>预测</b>大象的行为

    使用机器学习模型(AI)进行预测是否安全

    电子发烧友网站提供《使用机器学习模型(AI)进行预测是否安全.zip》资料免费下载
    发表于 06-14 11:04 0次下载
    使用<b class='flag-5'>机器</b><b class='flag-5'>学习</b><b class='flag-5'>模型</b>(AI)进行<b class='flag-5'>预测</b>是否安全

    如今MCU上“跑”机器学习,也很给力

    机器学习(ML)是解决涉及模式识别问题的一个非常好的工具,ML算法能将杂乱的原始数据转化为可用信号。其基本流程是基于数据产生模型,然后利用模型
    的头像 发表于 05-19 09:55 1478次阅读
    如今MCU上“跑”<b class='flag-5'>机器</b><b class='flag-5'>学习</b>,也很给力