分类器的性能评估指标:混淆矩阵、精度、召回率、ROC曲线等等
在使用回归器的时候,我们通常用预测结果的准确率来评估模型的优良与否,但该指标并不一定适用于分类器,特别是处理某些偏斜数据集(即某些类比其他类更为频繁时)时。
评估分类器性能的更好方法是混淆矩阵。总体思路就是统计A类别实例被分成为B类别的次数。例如,对于一个0-9数字分类器,要想知道分类器将数字3和数字5混淆多少次,只需要通过混淆矩阵的第5行第3列来查看。
下图是一个二分类器预测结果的混淆矩阵,该分类器的功能是把数字(0-9)分为5(正)和非5(负)两类。
从上图可知,混淆矩阵由四部分组成:第一行第一列是实例为负,预测为负的真负类;第一行第二列是实例为负,预测为正的假正类(FP);第二行第一列是实例为正,预测为负的假负类(FN);第二行第二列是实例为正,预测为正的真正类(TP)。
下面介绍精度、召回率的概念:
精度: 即可以理解为在预测为正的结果中的正确率。
召回率: 即可理解为在实际为正的实例中有多少被预测准确了出来。召回率也称为灵敏度(sensitivity)和真正类率(TPR)
F1分数: F1分数是将精度和召回率组合而成的新的单一指标。只有当精度和召回率都很高时,才能得到较高的F1分数。
F1分数对那些具有相近的精度和召回率的分类器更为有利。 这不一定能一直符合你的期望: 在某些情况下, 你更关心的是精度, 而另一些情况下, 你可能真正关心的是召回率。 例如, 假设你训练一个分类器来检测儿童可以放心观看的视频, 那么你可能更青睐那种拦截了很多好视频(低召回率) , 但是保留下来的视频都是安全(高精度)的分类器, 而不是召回率虽高, 但是在产品中可能会出现一些非常糟糕的视频的分类器。反过来说,如果你训练一个分类器通过图像监控来检测小偷:你大概可以接受精度只有30%,只要召回率能达到99%(当然,安保人员会收到一些错误的警报,但是几乎所有的窃贼都在劫难逃)。
遗憾的是,鱼和熊掌不可兼得:你不能同时增加精度并减少召回率,反之亦然。这称为精度/召回率权衡。
要理解这个权衡过程,我们以SGDClassifier为例,看它如何进行分类决策。对于每个实例,它会基于决策函数计算出一个分值,如果该值大于阈值,则将该实例判为正类,否则便将其判为负类。图3-3显示了从左边最低分到右边最高分的几个数字。假设决策阈值位于中间箭头位置(两个5之间):在阈值的右侧可以找到4个真正类(真的5),一个假正类(实际上是6)。因此,在该阈值下,精度为80%(4/5)。但是在6个真正的5中,分类器仅检测到了4个,所以召回率为67%(4/6)。现在,如果提高阈值(将其挪动到右边箭头的位置),假正类(数字6)变成了真负类,因此精度得到提升(本例中提升到100%),但是一个真正类变成一个假负类,召回率降低至50%。反之,降低阈值则会在增加召回率的同时降低精度。
我们可以绘制一张精度/召回率和决策阈值的函数图如下:
为什么在图中精度曲线比召回率曲线要崎岖一些?原因在于,当你提高阈值时,精度有时也有可能会下降(尽管总体趋势是上升的)。要理解原因,可以回头看图3-3,注意,当把阈值从中间箭头往右移动一位数时:精度从4/5(80%)下降到3/4(75%)。另一方面,当阈值上升时,召回率只会下降,这就解释了为什么召回率的曲线看起来很平滑。现在,就可以通过轻松选择阈值来实现最佳的精度/召回率权衡了。还有一种找到好的精度/召回率权衡的方法是直接绘制精度和召回率的函数图,如下图所示:
还有一种经常与二元分类器一起使用的工具,叫作受试者工作特征曲线(简称ROC)。它与精度/召回率曲线非常相似,但绘制的不是精度和召回率,而是真正类率(召回率的另一名称)和假正类率(FPR)。 FPR是被错误分为正类的负类实例比率。它等于1减去真负类率(TNR),后者是被正确分类为负类的负类实例比率,也称为特异度。因此, ROC曲线绘制的是灵敏度和(1-特异度)的关系。ROC曲线示例如下:
同样这里再次面临一个折中权衡: 召回率(TPR) 越高, 分类器产生的假正类(FPR) 就越多。 虚线表示纯随机分类器的ROC曲线;一个优秀的分类器应该离这条线越远越好(向左上角) 。
有一种比较分类器的方法是测量曲线下面积AUC,完美的分类器的ROC AUC等于1, 而纯随机分类器的ROC AUC等于0.5。
由于ROC曲线与精度/召回率(或PR) 曲线非常相似, 因此你可能会问如何决定使用哪种曲线。 有一个经验法则是, 当正类非常少见或者你更关注假正类而不是假负类时, 你应该选择PR曲线, 反之则是ROC曲线。 例如, 看前面的ROC曲线图(以及ROC AUC分数) , 你可能会觉得分类器真不错。 但这主要是因为跟负类(非5)相比, 正类(数字5) 的数量真得很少。 相比之下, PR曲线清楚地说明分类器还有改进的空间(曲线还可以更接近右上角)。
- R语言︱分类器的性能表现评价(混淆矩阵,准确率,召回率,F1,mAP、ROC曲线)
- 2.sklearn—评价指标大全(平均误差、均方误差、混淆矩阵、准确率、查全率、查准率、召回率、特异度,F1-score、G-mean、KS值、ROC曲线、AUC值、损失函数、结构风险最小)
- 分类器性能评估之混淆矩阵(1)
- 【scikit-learn】评估分类器性能的度量,像混淆矩阵、ROC、AUC等
- <zz>模式识别中分类器性能评估参数的解释---混淆矩阵,ROC
- scikit-learn中评估分类器性能的度量,像混淆矩阵、ROC、AUC等
- 分类器性能指标之ROC曲线、AUC值
- 不周山:分类器评价、混淆矩阵与ROC曲线
- 分类模型的性能评估——以SAS Logistic回归为例(1): 混淆矩阵
- 分类器指标-准确率,精度,召回率
- 分类器性能指标错误率、正确率、召回率
- 分类模型的性能评估——以SAS Logistic回归为例(1): 混淆矩阵
- 机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率
- 机器学习之-分类性能指标-准确率-召回率-ROC曲线
- 机器学习之分类器性能指标之ROC曲线、AUC值
- 机器学习性能评估指标(精确率、召回率、ROC、AUC)
- ROC曲线(精确率,召回率,F1值)。混淆矩阵
- 机器学习之分类器性能指标之ROC曲线、AUC值
- 真假正负例、混淆矩阵、ROC曲线、召回率、准确率、F值、AP
- 机器学习之分类器性能指标之ROC曲线、AUC值