模型评价指标-ROC曲线AUC值

     在做机器学习的时候,当模型训练好之后,我们该如何去评价这个模型的好坏呢?我们首先想到的会是使用正确率来评价模型的好坏。首先来看下正确率公式:

                                                          正确率 = 预测正确的样本数 / 总的样本数

那么如果用正确率来衡量一个模型的好坏的话,它会存在什么问题呢?

假如我们有100个样本,其中正样本数有95个,负样本数5个,模型的预测中,在95个正样本里面有94个预测成了正样本,1个预测成了负样本,在5个负样本中,有4个预测成了正样本,1个预测成了负样本,即:

                              实际值                95 正样本数                                    5负样本数

                              预测值          94正                    1负                         4正             1负 

像这种情况,正确率为 (94 + 1)/ 100  = 0.95 ,如果只看0.95这个值的话,该模型算是个好模型了。但是,我们观察下负样本,5个负样本中只有1个本预测对了,显然模型不合理。所以,对于正负例样本比例不平衡的数据集来说,使用正确率来衡量模型好坏显然是不合理的。

准确率和召回率

    接下来引入准确率和召回率两概念。首先这两指标是针对一边的样本的(正样本或负样本),通常叫正样本(负样本)的准确率,正样本(负样本)的召回率。首先引入下图:

                               模型评价指标-ROC曲线AUC值

如上图所示 : 正样本的召回率 = TP/(TP+FN)           正样本的准确率 = TP/(TP+FP)

其中:真正例(TP)、假正例(FP)、真反例(TN),以及假反例(FN)

        TP :预测是正样本  实际也是正样本               FP:预测是正样本  实际是负样本

        FN:预测是负样本  实际是正样本                    TN:预测是负样本  实际是负样本

还是按上面那个例子计算正样本召回率和准确率:

      正样本召回率 = 94 / (94 + 1)                 正样本准确率 = 94/(94 + 4)

     负样本召回率 = 1 / (4 + 1)                 负样本准确率 = 1/(4 + 1)

不同项目,对于这两指标侧重点不一样,对于一些推荐系统来讲,它们就希望准确率高点,希望达到推荐过去的东西都是用户所喜欢的,进而提高用户体验,这个时候可以提高阈值,但是对于一些文章过滤需求,需要把黄赌毒的文章都过滤掉,这个时候就希望召回率高点,目的是要把所有的黄赌毒文章过滤掉,这个时候可以降低阈值。通过上述分析,这两指标大小是和阈值相关的,阈值大点,准确率就高,阈值小点,召回率就高。显然这也无法定量去衡量模型的好坏,接下来我们引出ROC曲线。

ROC曲线和AUC值

先看下曲线长什么样子

                            模型评价指标-ROC曲线AUC值

       解释如下:

模型评价指标-ROC曲线AUC值

到这里模型评价指标就结束了。