Python 如何看待机器学习中预测的特征重要性

Python 如何看待机器学习中预测的特征重要性,python,machine-learning,random-forest,Python,Machine Learning,Random Forest,我有一个简单的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 现在我

我有一个简单的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分类器预测的一个包是Treeinterpreter。它计算单个特征对单个预测的贡献:“用于解释scikit learn的决策树和随机森林预测的包。允许将每个预测分解为偏差和特征贡献组件…”

本博客解释了它的工作原理,并举例说明了如何使用它。但基本上,一旦您拥有射频型号:

from treeinterpreter import treeinterpreter as ti
prediction, bias, contributions = ti.predict(model, data) 

模型是射频模型,数据是测试数据(您为其生成预测的数据集)

您好,谢谢您,您能提供一些示例吗?如何做到这一点?谢谢,我猜
模型
是我的射频模型,什么是
数据
参数?这个博客[这里]()解释它是如何工作的,这个[这里]()展示了如何使用它的示例。但基本上,一旦你有了你的模型:
从treeinterpreter导入treeinterpreter作为ti
prediction,bias,contributions=ti。predict(model,data)
model是您的射频模型,data是您的测试数据(生成预测的数据集),谢谢。你能用上面评论的内容更新你的答案吗?因为它可能会在将来帮助别人。(可能他/她会错过评论)嗨,梅尔,我有个问题。当我尝试获取特征重要性时,只有一个特征(17个特征中的一个)的值为0.0000,其他所有特征的值均为0.0000。你知道为什么会这样吗?