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



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

是否有一种社区采用的标准方法将其简化为一个考虑所有因素的单一分类置信度?

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

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

没有做这件事的标准。但你可以做的是改变阈值。我的确切意思是,如果你使用predict,它会抛出一个二进制数据,对你的数据集进行分类,它所做的就是将0.5作为预测的阈值。类似于如果在1中分类的概率>0.5,则将其分类为1=0.5。但在某些情况下,这可能会导致f1成绩不佳。

因此,方法应该是改变阈值,并选择一个能产生最大f1分数或任何其他你想用作分数函数的指标。ROC(接收器工作特性)曲线仅用于此目的。实际上,sklearn只给出类概率的动机是让选择最佳阈值。

一个很好的例子是预测患者是否患有癌症。因此,你必须明智地选择你的阈值,如果你选择高阈值,你可能会得到很多假阴性,或者如果你选择低阈值,你也可能得到很多假阳性。因此,你只需根据自己的需求选择阈值(因为最好能得到更多的假阳性)。

希望它能有所帮助!

最新更新