如何用业务解释「特征重要性」计算?

挖数网精选
挖数网精选
挖数网精选
446
文章
0
评论
2020-07-2213:07:00 评论 892 1793字
摘要

如果有学过或者用过一些算法的同学,应该对特征重要性这个概念并不陌生。算法一般都是用来做预测的,而预测也不是凭空发生的,是基于一些已有的变量(x)进行预测的,那在众多的x中每个x对最终的预测贡献的信息具体是多少呢?

如果有学过或者用过一些算法的同学,应该对特征重要性这个概念并不陌生。算法一般都是用来做预测的,而预测也不是凭空发生的,是基于一些已有的变量(x)进行预测的,那在众多的x中每个x对最终的预测贡献的信息具体是多少呢?

比如要预测明天是否会下雨,第一个x是明天的空气湿度,第二个x是明天天晴或天阴,第三个x是明天的温度,第四个x是明天是星期几,在预测明天是否会下雨这件事上这四个不同的x对预测的影响肯定是不一样的,我们把这个影响大小称为特征重要性。

那特征重要性和基于业务解释的特征重要性有什么区别呢?是经常听到很多做数据分析的人说学算法是为了更好的做数据分析,为了更好的推进业务。

为了推进业务就需要你的结果是可解释的,你不能拿着一个黑盒模型告诉业务说,模型结果是明天会下雨,至于为什么,不知道。这肯定是不可以的,所以我们需要对我们的结果进行解释。

关于特征重要性,不同模型的计算方法略有不同,但是一个总体大原则就是谁对模型预测结果准确度贡献越大,谁的重要性就高。很多模型都会自带feature_importance属性,可以得出每个特征的重要性得分。

特征重要性得分让我们知道了不同特征之间的重要性情况,除此之外,我们还想知道在其他特征不变的情况,某一个特征内部重要性分布是什么样的。这个也是有现成方法,叫做部分依赖图,英文全称是Partial Dependence Plots,简称PDP。

如何用业务解释「特征重要性」计算?

上图中第一行三张图分别表示收入中位数、平均入住率、房屋年龄对房价中位数的影响程度,可以看到有线性正向,反比例负向,基本无关三种趋势。右下角的图表反映了两个特征之间的相互作用。

讲完了特征重要和特征内部各取值对预测影响关系以外,我们再来介绍我们今天的主角——Shapley value值。

Shapley value翻译过来表示夏普利值,是用来说明自己的收入和付出是等效的,是一种分配方式。有一个经典的财产分配的例子:

假定现在有100万财产,这100万需要分配给ABC三个人。该怎么分配呢?可以平均分配,也可以按照每个人的权力大小进行分配,已知A拥有50%的票力,b拥有40%的票力,c拥有10%的票力。前面这两种方法虽然可以对财产进行分配,但是针对某个人分到的财产不是最多的。所以通过投票来决定如何分配,规则规定,当超过50%的票认可了某种方案时,才能获得整个财产,否则三人将一无所获。

c可以提出这样的方案,a:70%,b:0,c:30%。这个方案能被a、c接受,因为对a、c来说这是一个比按票力分配有明显改进的方案,尽管b被排除出去,但是a、c的票力构成大多数(60%)。  

在这样的情况下,b会向a提出这样一个方案,a:80%,b20%,c:0。此时a和b所得均比刚才c提出的方案要好,但c成了一无所有,但a、b票力综合构成多数(90%)……这样的过程可以一直进行下去。  

最终的分配结果会是怎样的呢?夏普里提出了一种计算权利的度量。他给出了一个衡量博弈方先验实力的方法,根据他的理论求的的联盟者的先验实力被称之为夏普里值。

夏普里值是这样的一个值:在各种可能的联盟次序下,参与者对联盟的边际贡献之和除以各种可能的联盟组合。

关于夏普利值更多的内容可以查阅:

https://wiki.mbalib.com/wiki/%E5%A4%8F%E6%99%AE%E5%88%A9%E5%80%BC

以上是关于Shapley value比较学术方面的介绍,那如果应用到模型中被用来说明特征重要性时应该如何计算呢?

针对每一个特征(x),计算该特征下面每一个样本取值对预测结果的影响程度,然后对所有样本的影响程度求均值,就是这个特征的对预测结果的整体影响程度。

如下图所示,随着RM的增加,RM的SHAP Value值也是增加的:

如何用业务解释「特征重要性」计算?

下图是把模型中用到的所有特征的重要性全部绘制出来了,每一行代表一个特征,颜色代表特征的取值大小,颜色越红说明这个特征的值越大,横轴代表特征取值对预测结果重要性的影响:

如何用业务解释「特征重要性」计算?

下图是把每个特征内每个样本对预测结果的影响程度取均值,得到每个特征的重要性:

如何用业务解释「特征重要性」计算?

关于SHAP Value的计算在Python中有现成的库可以使用,github链接如下:

https://github.com/slundberg/shap

以上就是关于基于业务解释的特征重要性计算方法。

End.

来源:俊红的数据分析之路

本文已和作者授权,如需转载请与作者联系

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: