二元机器学习分类的置信概率

时间:2016-07-24 14:15:51

标签: machine-learning scikit-learn svm

当使用SKlearn并使用predict_proba(x)函数获取二进制分类[1,0]的概率时,该函数返回分类落入每个类的概率。例如[.8,.34]。

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

选项1) 只需考虑预测分类的概率(本例中为.8)

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

1 个答案:

答案 0 :(得分:0)

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

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

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

希望它有所帮助!