roc曲线怎么画?

训练得到了级联分类器,现在想用样本对其进行测试,如何画分类器的roc曲线,还有,opencv中detectmultiscale的参数rejectlev…
关注者
53
被浏览
158,122
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

举个栗子,就借网上的这个栗子好了,

第一步是按照属于‘正样本’的概率将所有样本排序,如下图所示



第二步,让我们依次来看每个样本。对于样本1,如果我们将他的score值做阈值,也就是说,只有score大于等于0.9时,我们才把样本归类到真阳性(true positive),这么一来, 在ROC曲线图中,样本1对应的混淆矩阵(confusion matrix)为



其中,只有样本1我们看作是正确分类了(也就是我们预测是正样本,实际也是正样本);其余还有9个实际是正样本,而我们预测是负样本的(2,4,5,6,9,11,13,17,19);剩下的实际是负样本,我们都预测出是负样本了(也就是false positive = 0, true negative = 10)。


从混淆矩阵中,我们可以算出X轴坐标(false positive rate)= 0/(0+10)= 0 和Y轴坐标(true positive rate)= 1/(1+9)= 0.1,这就是下图中的第一个点

同理我们来看样本3,它的混淆矩阵为

其中,样本1,2我们看作是正确分类了(也就是我们预测是正样本,实际也是正样本);其余还有8个实际是正样本,而我们预测是负样本的(2,4,5,6,9,11,13,17,19);而样本3是假阳性(我们预测是正样本,实际是负样本);剩下的(7,8,10,12,14,15,16,18,20)实际是负样本,我们都预测出是负样本了(也就是false positive = 1, true negative = 9)。


从样本3的混淆矩阵中,我们可以算出X轴坐标(false positive rate)= 1/(1+9)= 0.1 和Y轴坐标(true positive rate)= 2/(2+8)= 0.2,这就是下图中的第三个点。


依次把20个样本的混淆矩阵列出来,再算出X轴坐标(false positive rate) 和Y轴坐标(true positive rate),就可以得到ROC曲线啦~


感觉自己讲的好明白!