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

我的情况是:我能够使用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进行了比较,其表现看起来非常差。

                精确度    召回率 random forest   0.901        0.907naive  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来获取决策。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注