这是我的情况:我能够使用随机森林
来解决二元分类问题;请注意,给定一个特征向量,典型的随机森林
模型可以预测它是属于组1
还是组0
,从而生成一个二进制分类。
但是,由于多种原因,对于每个特征向量,我希望有一个介于 0 到 1 之间的分数,而不是 0/1
标签。理想情况下,分数越高,我就越有信心将特征向量放入 1
集合,否则,它应该属于 0
集合。
所以它仍然是一个0/1
分类,但是这一次,我想要一个从0到1的分数,而不是0
或 1
标签。
有人告诉我,一些统计分类方法,例如朴素贝叶斯
,可以生成可能性得分,表示给定的特征向量是否应该放入0
集合或1
套。但是,我在数据集上使用朴素贝叶斯进行了快速 10 倍验证,与随机森林相比,性能看起来非常糟糕。
precision recall
random forest 0.901 0.907
naive Bayes 0.752 0.653
太糟糕了...我想保持随机森林
的高性能,并获得分数
..
我知道随机森林
具有特殊的树状结构,作为机器学习的新手,我不知道如何操作随机森林
来生成分数。
所以这是我的问题,如何操纵随机森林
来生成从0到1的分数,而不是0
或1
标签,给定特征向量样本?我说得够清楚吗?谢谢!
最佳答案
这是随机森林的通常特征。最简单的方法是:森林中的每棵树都给出 0/1 的决定。取决策的平均值。您现在将获得 [0,1] 范围内的分数。
如果您的随机森林包不提供此功能,您应该寻找另一个提供此功能的实现(或检查文档,您可能错过了它)。
例如,在 scikit learn 中,您可以调用 predict_proba
方法来获取概率,然后只需 predict
即可获得决策。
关于machine-learning - 操纵随机森林来生成分数而不是 0/1 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37218397/