操纵随机森林以产生分数而不是 0/1 标签
Manipulate Random forest to produce a score rather than 0/1 label
这是我的情况:我可以使用 random forest
来做二分类问题;注意,给定一个特征向量,一个典型的random forest
模型可以预测它是属于组1
还是属于组0
,从而进行二分类。
但是,由于多种原因,对于每个特征向量,我希望有一个从0到1的分数,而不是0/1
标签。理想情况下,分数越高,我就越有信心将特征向量放入 1
集合,否则,它应该属于 0
集合。
所以仍然是0/1
分类,但是这次,我想要一个0到1的分数,而不是0
或者[=13] =] 标签.
有人告诉我一些统计分类方法,例如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/1 的决定。取决策的平均值。您现在将获得 [0,1] 范围内的分数。
如果您的随机森林包不提供此功能,您应该寻找另一个提供此功能的实现(或查看文档,您可能错过了它)。
例如,在 scikit learn 中,您调用 predict_proba
方法来获取概率,而只需 predict
来获取决策。
这是我的情况:我可以使用 random forest
来做二分类问题;注意,给定一个特征向量,一个典型的random forest
模型可以预测它是属于组1
还是属于组0
,从而进行二分类。
但是,由于多种原因,对于每个特征向量,我希望有一个从0到1的分数,而不是0/1
标签。理想情况下,分数越高,我就越有信心将特征向量放入 1
集合,否则,它应该属于 0
集合。
所以仍然是0/1
分类,但是这次,我想要一个0到1的分数,而不是0
或者[=13] =] 标签.
有人告诉我一些统计分类方法,例如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/1 的决定。取决策的平均值。您现在将获得 [0,1] 范围内的分数。
如果您的随机森林包不提供此功能,您应该寻找另一个提供此功能的实现(或查看文档,您可能错过了它)。
例如,在 scikit learn 中,您调用 predict_proba
方法来获取概率,而只需 predict
来获取决策。