XGboost - 由模型做出的选择

数据挖掘 xgboost
2021-09-21 06:26:05

我正在使用XGboost来预测保险索赔的 2 类目标变量。我有一个模型(使用交叉验证、超参数调整等进行训练)我在另一个数据集上运行。

我的问题是:

有没有办法知道为什么给定的声明会影响到一个类,即解释模型所做选择的特征?

目的是能够证明机器对第三方人类做出的选择是合理的。

感谢您的回答。

3个回答

您可以使用ELI5库来解释对 XGBoost 模型的单个预测的特征贡献。

请参阅文档中的解释预测,复制如下:

为了更好地了解我们的分类器是如何工作的,让我们检查一下各个预测eli5.show_prediction()

from eli5 import show_prediction
show_prediction(clf, valid_xs[1], vec=vec, show_feature_values=True)

在此处输入图像描述

我建议你去夏普它使用Shapley 值(从博弈论中借用的概念)来描述模型行为,并以此解释单个预测。

它的图形界面使用力图,如下所示。在此处输入图像描述

红色条由导致预测为正值的特征构建,蓝色条由其他特征构建。

在您的情况下(分类器),粗体数字将是sigmoid函数之前的数字,该函数将输出值限制在零和一之间(一类或另一类)。因此,如果在某些情况下它会大于一或负数,请不要害怕。

段的大小表示该特征对预测的贡献程度,在段下您可以看到特征的名称(例如 LSTAT)及其实际值(例如 4.98)。因此,在这种情况下,LSTAT 是使数据集元素的预测值达到 24.41(粗体数字)的平均特征。

享受!

谢谢你的答案。

这个 R 包似乎可以完成这项工作:

https://medium.com/applied-data-science/new-r-package-the-xgboost-explainer-51dd7d1aa211