如何确定分类器的最佳阈值并生成ROC曲线?


Answers:


14

使用SVM分类器对一组带注释的示例进行分类,并且可以基于示例的一个预测来识别ROC空间上的“一个点”。假设示例数为200,首先计算四种情况下的示例数。

labeledtruelabeledfalsepredictedtrue7128predictedfalse5744


然后计算TPR(真阳性率)和FPR(假阳性率)。F P R = 28 /28 + 44 = 0.3889在ROC空间上,x轴为FPR,y轴为TPR。所以点0.3889 0.5547 获得。 要绘制ROC曲线,只需 (1)调整一些阈值即可控制标记为true或false的示例数TPR=71/(71+57)=0.5547FPR=28/(28+44)=0.3889(0.3889,0.5547)



例如,如果某种蛋白质的浓度超过α%表示某种疾病,则不同的α值会产生不同的最终TPR和FPR值。可以通过类似于网格搜索的方式简单地确定阈值。标记具有不同阈值的训练示例,训练具有不同标记示例集的分类器,对测试数据运行分类器,计算FPR值并选择覆盖低(接近0)和高(接近1)FPR的阈值值,即接近0、0.05、0.1,...,0.95、1

(2)生成许多带注释的示例集
(3)对这些示例集运行分类器
(4)计算一个(FPR,TPR)点为每一个
(5)绘制最终的ROC曲线

可以在http://en.wikipedia.org/wiki/Receiver_operating_characteristic中检查一些详细信息。

此外,这两个链接对于如何确定最佳阈值很有用。一种简单的方法是取最大正负假率之和。其他更精细的标准可能包括涉及不同阈值的其他变量,例如财务成本等
。http : //www.medicalbiostatistics.com/roccurve.pdf
http://www.kovcomp.co.uk/support/XL-Tut/life-ROC -curves-receiver-operating-characteristic.html


5
感谢您的解释,最佳阈值呢?
RockTheStar

1
抱歉,我之前知道最佳阈值是一个特殊术语。搜索后,我发现Google图书“使用SAS分析接收器工作特性曲线”一书的“ 3.5选择最佳阈值”一章对选择最佳阈值进行了详细说明。上面描述的两种广泛使用的方法是选择阈值,该阈值将使最终的二进制预测(1)尽可能接近理想的预测器。(2)尽可能远离非信息量的预测因素
汤姆(Tom)

太酷了,在哪里可以找到参考?谢谢!
RockTheStar

2
是的,“远离非信息性预测变量”是什么意思?请添加参考。
西蒙妮2014年

1
此外,我还从中读到有很多确定最佳阈值的标准。例如,一个简单的标准是,在所有阈值中,选择具有最大正负假值之和的阈值。还有其他更复杂的标准。
2014年

3

选择阈值的一种真正简单的方法是获取测试集阳性病例的中值预测值。这成为您的门槛。

该阈值相对接近于使用roc曲线所获得的相同阈值,其中roc曲线的真阳性率(tpr)和1-假阳性率(fpr)重叠。此tpr(交叉)1-fpr交叉最大程度地提高了正阳性率,同时最大程度减少了假阴性。


我懂了。中位数预测值。谢谢你的建议。
RockTheStar '18

2
有这种方法的来源吗?
JEquihua

1
这等效于在ROC曲线中选择TPR = 0.5的点,这听起来确实是任意的。
巴南宁

中位数预测值?如果班级不平衡率为1000:1,会发生什么?
ldmtwo

3

选择最接近ROC空间左上角的点。现在,用于生成这一点的阈值应该是最佳阈值。


2
如何自动执行此操作?
ldmtwo

1

阈值的选择取决于TPR和FPR分类问题的重要性。例如,如果您的分类器决定哪些犯罪嫌疑人将被判处死刑,则误报非常严重(无辜者将被杀!)。因此,您将选择一个阈值,使其在保持合理的TPR时产生较低的FPR(因此您实际上抓到了一些真正的罪犯)。如果没有外部关注低TPR或高FPR,一种选择是通过选择最大阈值来对它们进行平均加权ŤP[R-FP[R

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.