【发布时间】:2016-05-14 04:12:09
【问题描述】:
这是我的情况:我可以使用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 标签?我够清楚吗?谢谢!
【问题讨论】:
-
@sascha,谢谢您的回复。我正在使用 Sklearn 库。
-
sklearn可以支持吗?让我看看…… -
那就用 obj.predict_proba(X) 代替 obj.predict(X)
-
对于完美主义者来说还有一句话:可以像here 中描述的那样后验地提高这些概率。尽管 sklearn 的这一部分不如其他部分好(功能、设计、添加到管道网格搜索的能力等等)。
标签: machine-learning random-forest