2016-07-24 122 views
2

当使用SKlearn和获取具有二分类[1,0]的predict_proba(x)函数的概率时,函数返回分类落入每个类的概率。例子[.8,.34]。二元机器学习分类的置信概率

是否有社区采用标准方法将此降低为单个分类信度,并将所有因素考虑在内?

项1) 只要采取在此实例中为所预测的分类(0.8的概率)

选项2) 某些数学公式或函数调用哪个其考虑各种不同的概率和返回一个数字。这样的信心方法可以考虑谁关闭不同类别的概率,并且如果不同类别之间没有太多分离,则返回较低的置信度。

+2

在你的例子 - 不应该类概率总和为1? –

回答

0

Theres没有这样做的标准。但是你可以做的是改变门槛。我的意思是,如果你使用predict而不是抛出一个二进制分类你的数据集,它的做法是以0.5作为预测门槛。就像如果1中分类的概率> 0.5,则将其分类为1和0,如果< = 0.5。但是在某些情况下,这可能会导致f1分数很差。

所以,方法应该是改变门槛,并选择一个产生最大f1分数或任何其他你想用作评分函数的指标。 ROC(Receiver operating characteristic)曲线仅用于此目的。事实上,sklearn背后的动机仅仅是为了给出这个类的概率,让选择最好的门槛。

一个很好的例子是预测患者是否患有癌症。所以你必须明智地选择你的门槛,如果你选择的很高,你可能会得到很多假阴性,或者如果你选择的很低,你会得到很多假阳性。所以你只是根据你的需要选择阈值(因为它更好地获得更多的误报)。

希望它有帮助!

+0

如果这是一个多类问题怎么办?我们如何选择threashold? – Sandeep

+0

@Sandeep你基本上绘制了多个ROC曲线。这可能会有所帮助 - http://stats.stackexchange.com/questions/2151/how-to-plot-roc-curves-in-multiclass-classification – hashcode55