大家好 距离机器学习课程开始还有几天的时间。 鉴于课程开始,我们准备了有用的翻译 ,我们的学生和所有博客读者都将感兴趣。 今天,我们与您分享此翻译的最后一部分。

部分依赖图
部分依赖图(部分依赖图或PDP,PD图)显示了一个或两个特征对机器学习模型的预测结果的影响不显着(
JH Friedman 2001 )。 PDP可以使用1D或2D图形显示目标和所选要素之间的关系。
如何运作?
在训练模型之后,也会计算PDP。 在我们上面讨论的足球问题中,有很多迹象,例如传球,助攻进球,进球等。 让我们从看一行开始。 假设这支队伍是一支拥有50%的机会出球的球队,该助攻100次,得分10次,进球数1次。
我们通过训练模型并计算团队中有一名球员获得“游戏人”(这是我们的目标变量)的可能性来采取行动。 然后,我们选择变量并不断更改其值。 例如,假设团队得分为1球,2球,3球等,我们将计算结果。 所有这些值都反映在图表中,最终,我们得到了预测结果与得分目标之间的依存关系的图表。
Python中用于构建PDP的库称为python部分依赖图工具箱,或简称为PDPbox 。
from matplotlib import pyplot as plt from pdpbox import pdp, get_dataset, info_plots
口译
- Y轴表示由于原始值或最左侧值中的预测值而引起的预测值变化。
- 蓝色区域表示置信区间。
- 对于“进球得分”图,我们看到进球得分增加了获得“游戏人物”奖的可能性,但是一段时间后,饱和发生了。
我们还可以使用2D图形同时可视化两个特征的部分依赖关系。
练习SHAP值
SHAP代表SHapley Additive解释。 该方法有助于将预测分为多个部分,以揭示每个特征的重要性。 它基于Vector Shapley(游戏邦注:一种在游戏理论中使用的原理,用于确定每个玩家在联合游戏中为成功取得成功做出的贡献(https://medium.com/civis-analytics/demystifying-black-box-models-with-shap-价值分析3e20b536fc80)。 在准确性和可解释性之间寻求折衷通常可能是一个困难的平衡,但是SHAP值可以同时提供两者。
如何运作?
再次,让我们回到足球的例子中,我们要预测一支球队拥有赢得“游戏人”奖的球员的可能性。 SHAP-值解释了某个特征的某个值的影响,如果该特征具有某个基本值,则与我们做出的预测相比较。
SHAP-使用Shap库计算值,可以从PyPI或conda轻松安装。
SHAP-值显示此特定功能在多大程度上改变了我们的预测(与使用该特征的一些基本值进行此预测相比)。 假设我们想知道如果团队进球数为3个而不是固定的基本金额,那将会是什么样的预测。 如果我们可以回答此问题,则可以对其他标志执行相同的步骤,如下所示:
sum(SHAP values for all features) = pred_for_team - pred_for_baseline_values
因此,预测可以用下图的形式表示:
这是全局的链接 。口译
上面的示例显示了特征,每个特征都有助于模型输出以基本值(使用我们之前传递给它的训练数据集的模型的平均统计输出)向最终模型输出的移动。 上面的预测表示红色的标志,下面的表示预测准确性的标志。
- 此处的基本值为0.4979,而预测值为0.7。
Goal Scores
= 2时,该特征对改善预测影响最大,而ball possession
属性具有降低最终预测的最大作用。
练习
SHAP-值具有比我在这里提到的要深得多的理论依据。 为了更好地理解该问题,请点击
链接 。
高级使用SHAP值
聚合多个SHAP值将有助于形成更详细的模型视图。
为了了解哪些特征对于模型最重要,我们可以为每个特征和每个样本建立SHAP值。 摘要图显示了哪些特征最重要,以及它们对数据集的影响范围。

对于每个点:
- 垂直排列显示了它所反映的符号。
- 颜色表示此对象对于此数据集字符串是高度显着还是弱显着;
- 水平排列显示此功能的值的影响是否导致了更准确的预测。
左上角的圆点表示球队取得了几个进球,但成功预测的可能性降低了0.25。
尽管SHAP摘要图提供了每个特性的概述,但是SHAP依赖图显示了模型输出如何依赖特性值。 SHAP贡献依赖性图提供了类似的PDP见解,但增加了更多细节。
存款依赖表上面显示的图形表明,剑的存在增加了球队获得报酬的机会。 但是如果一支球队只进球,那么这种趋势正在改变,因为裁判可以决定球队球员保持球的时间太长而进球数太少。
练习结论
机器学习不再是一个黑匣子。 如果我们无法向他人解释她的工作成果,那么好的模型有什么用? 可解释性与模型的质量一样重要。 为了获得认可,机器学习系统必须提供对其决策的清晰说明。 正如爱因斯坦(Albert Einstein)所说:“如果您无法用简单的语言解释某些内容,那么您将无法理解。”
资料来源:- “可解释的机器学习:解释黑匣子模型的指南。” 克里斯多夫·莫纳尔
- Kaggle的机器学习可解释性微型课程
阅读第一部分