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

时间:2016-05-13 19:56:23

标签: machine-learning random-forest

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

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

所以它仍然是0/1分类,但这一次,我希望得分从0到1,而不是01标签。

我被告知某些统计分类方法(例如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标签?我清楚了吗?谢谢!

1 个答案:

答案 0 :(得分:2)

这是随机森林的常规功能。最简单的方法是:森林中的每棵树都会给出0/1的决定权。取决定的平均值。您现在可以获得[0,1]范围内的分数。

如果您的随机林包没有提供此功能,您应该寻找另一种实现(或检查文档,您可能已经错过了它)。

例如,在scikit中,您可以调用predict_proba方法来获取概率,然后只需predict来做出决定。