操纵随机森林以产生分数而不是 0/1 标签

Manipulate Random forest to produce a score rather than 0/1 label

这是我的情况:我可以使用 random forest 来做二分类问题;注意,给定一个特征向量,一个典型的random forest模型可以预测它是属于组1还是属于组0,从而进行二分类。

但是,由于多种原因,对于每个特征向量,我希望有一个从0到1的分数,而不是0/1标签。理想情况下,分数越高,我就越有信心将特征向量放入 1 集合,否则,它应该属于 0 集合。

所以仍然是0/1分类,但是这次,我想要一个0到1的分数,而不是0或者[=13] =] 标签.

有人告诉我一些统计分类方法,例如naive Bayes,可以产生可能性分数,表示给定的特征向量应该放入0集合还是1放。但是,我在我的数据集上使用 naive Bayes 进行了快速 10 倍验证,与 random forest 相比,性能看起来非常糟糕。

                precision    recall 
random forest   0.901        0.907
naive  Bayes    0.752        0.653

太糟糕了...我想保持 random forest 的高性能,并获得 score..

我知道 random forest 有一个特殊的树状结构,作为机器学习的新手,我不知道如何操纵 random forest 来生成分数。

所以这是我的问题,在给定特征向量样本的情况下,如何操纵 random forest 生成 0 到 1 之间的分数,而不是 01 标签?我够清楚吗?谢谢!

这是随机森林的正常特征。最简单的方法是:森林中的每棵树都给出 0/1 的决定。取决策的平均值。您现在将获得 [0,1] 范围内的分数。

如果您的随机森林包不提供此功能,您应该寻找另一个提供此功能的实现(或查看文档,您可能错过了它)。

例如,在 scikit learn 中,您调用 predict_proba 方法来获取概率,而只需 predict 来获取决策。