以下是我的情况:我可以使用random forest
来做二进制分类问题;请注意,给定一个特征向量,典型的random forest
模型可以预测它是属于组1
还是组0
,从而进行二元分类。
但是,由于多种原因,对于每个特征向量,我希望得分范围从0到1而不是0/1
标签。理想情况下,得分越高,我就越有信心将特征向量放入1
集,否则,它应该属于0
集。
所以它仍然是0/1
分类,但这一次,我希望得分从0到1,而不是0
或1
标签。
我被告知某些统计分类方法(例如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的分数,而不是0
或1
标签?我清楚了吗?谢谢!
答案 0 :(得分:2)
这是随机森林的常规功能。最简单的方法是:森林中的每棵树都会给出0/1的决定权。取决定的平均值。您现在可以获得[0,1]范围内的分数。
如果您的随机林包没有提供此功能,您应该寻找另一种实现(或检查文档,您可能已经错过了它)。
例如,在scikit中,您可以调用predict_proba
方法来获取概率,然后只需predict
来做出决定。