我有一个用样本数据集训练的简单RF分类器模型,它运行良好。
因此,我使用一些测试数据来预测目标类,假设它发现目标类为1
或0
(为了简单起见,将其视为二进制分类(
因此,假设我们需要了解测试特征对预测值(0
或1
(的影响。看看下面的例子:
input features - [a,b,c]
predicted value - 1
input features - [a,d,c]
predicted value - 10
因此,让我们假设第一个场景,其中输入(测试特征(特征是a
、b
和c
,它们将产生1
所以现在我想检查一下这些特征(a
、b
、c
(,哪些特征对预测值1
最有影响
我该怎么做?
PS:我知道如何检查训练数据集的特征重要性,但在这种情况下,它不是训练数据集,而是测试数据集,目标类只有在预测后才能获得。
我用来解释RF分类器预测的一个软件包是Treenterpreter。它计算个体特征对个体预测的贡献:;用于解释scikit learn的决策树和随机森林预测的软件包。允许将每个预测分解为偏差和特征贡献分量"https://pypi.org/project/treeinterpreter/
这个博客在这里解释了它是如何工作的,这里展示了如何使用它的例子。但基本上,一旦你有了你的RF模型:
from treeinterpreter import treeinterpreter as ti
prediction, bias, contributions = ti.predict(model, data)
模型是RF模型,数据是测试数据(生成预测的数据集(