赞
踩
理解个体的预测
你已经看到(并使用过)从机器学习模型中提取一般性解释的技术。但是如果你想详细分析模型对于单个预测的工作原理呢?
SHAP值(来自SHapley Additive exPlanations的缩写)将一个预测分解,以显示每个特征的影响。在哪些情况下可以使用这个?
在本课程中,您将使用SHAP值解释个别预测。在下一课中,您将看到如何将这些值聚合成强大的模型级别洞察。
SHAP值解释了具有给定特征值相对于如果该特征取某个基线值时的预测的影响。
一个例子是有帮助的,我们将继续使用 排列重要性 和 偏依赖图 课程中的足球例子。
在这些教程中,我们预测一支球队是否会有球员赢得 本场最佳 奖项。
我们可以问:
但如果我们将这个问题重新表述为:
当然,每支球队都有许多特征。因此,如果我们为 进球数
回答了这个问题,我们可以为所有其他特征重复这个过程。
SHAP值以一种确保良好性质的方式执行这个过程。具体而言,您可以使用以下方程式分解预测:
sum(SHAP values for all features) = pred_for_team - pred_for_baseline_values
也就是说,所有特征的SHAP值相加等于解释为什么我的预测与基线不同。这允许我们将预测分解成如下图所示:
如果您想要查看此图的更大视图,这是一个链接
如何解释这个图呢?
我们预测为0.7,而 base_value
是0.4979。导致增加预测的特征值为粉红色,它们的可视大小显示了特征效果的大小。导致减少预测的特征值为蓝色。最大的影响来自 进球数
为2。尽管控球率值对减小预测有意义。
如果将蓝条的长度减去粉条的长度,它等于从基线值到输出的距离。
该技术存在一些复杂性,以确保基线值加上单个效果的总和等于预测值(这并不像听起来那么简单)。我们不会在这里详细介绍这个细节,因为这对于使用这项技术并不是关键的。这篇博客文章有一个更长的理论解释。
我们使用优秀的 Shap 库来计算SHAP值。
在这个例子中,我们将重用您已经在足球数据中看到的模型。
In [1]:
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
# 从 CSV 文件中读取数据
data = pd<
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。