machine-learning - 操纵随机森林来生成分数而不是 0/1 标签

标签 machine-learning random-forest

这是我的情况:我能够使用随机森林来解决二元分类问题;请注意,给定一个特征向量,典型的随机森林模型可以预测它是属于组1还是组0,从而生成一个二进制分类。

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

所以它仍然是一个0/1分类,但是这一次,我想要一个从0到1的分数,而不是01 标签。

有人告诉我,一些统计分类方法,例如朴素贝叶斯,可以生成可能性得分,表示给定的特征向量是否应该放入0集合或1 套。但是,我在数据集上使用朴素贝叶斯进行了快速 10 倍验证,与随机森林相比,性能看起来非常糟糕。

                precision    recall 
random forest   0.901        0.907
naive  Bayes    0.752        0.653

太糟糕了...我想保持随机森林的高性能,并获得分数..

我知道随机森林具有特殊的树状结构,作为机器学习的新手,我不知道如何操作随机森林来生成分数。

所以这是我的问题,如何操纵随机森林来生成从0到1的分数,而不是01标签,给定特征向量样本?我说得够清楚吗?谢谢!

最佳答案

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

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

例如,在 scikit learn 中,您可以调用 predict_proba 方法来获取概率,然后只需 predict 即可获得决策。

关于machine-learning - 操纵随机森林来生成分数而不是 0/1 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37218397/

相关文章:

python - 如何评估xgboost分类模型稳定性

machine-learning - 逆向机器学习模型以获得特定特征

r - 处理训练和测试数据中的不同因子水平

预测变量中不允许出现随机森林错误 NA

random-forest - 在 H2O 随机森林和 xgboost 中使用权重列

api - 如何从Youtube音乐视频中提取艺术家和歌曲信息?

python - caffe 中的 `"Python"` 层是什么?

python - 每次运行 RandomForestRegressor 时都会得到不同的结果

r - 如何使用 MXNet 框架在卷积神经网络中制作平滑的内核?

python - 将对象类型的数据框列转换为浮点型