混淆矩阵

- 预测为真 预测为假
标签为真 TP FN
标签为假 FP TN

正确率(accuracy)

a c c u r a c y = T P + T N T P + F P + F N + T N accuracy= \frac {TP+TN}{TP+FP+FN+TN} accuracy=TP+FP+FN+TNTP+TN
该评价指标容易受到正负样本不平衡影响,若正样本数量很少,也可以得到高正确率的模型,但是并没有实际作用(模型基本没学到正样本的特征)。为了解决这一问题,因此提出了准确率和召回率。

准确率(precision)

p r e c i s i o n = T P T P + F P precision= \frac {TP}{TP+FP} precision=TP+FPTP
该评价指标衡量正确预测正样本占实际预测为正样本的比例。

召回率(recall)

r e c a l l = T P T P + F N recall= \frac {TP}{TP+FN} recall=TP+FNTP
该评价指标可以衡量正确预测正样本占正样本的比例。

F1值

一般来说模型的召回率越高,模型的准确率越低;模型的准确率越高,召回率越低。(越贪心犯错的概率就越大)那麽可以看出过高的召回率或者过高的准确率都不是理想的指标,因此就提出了采用召回率和准确率的调和平均值F1值作为评价指标:
F 1 = 2 1 p r e c i s i o n + 1 r e c a l l F1= \frac {2}{\frac{1}{precision}+\frac{1}{recall}} F1=precision1+recall12

为什莫要采用调和平均数?

四种平均数大小关系:调和平均数≤几何平均数≤算术平均数≤平方平均数。可以看出调和平均数最接近较小值。

相关参数选择

如果是多分类情况下,在使用F1分数时可以选择是micro还是macro,macro指对单个类别计算F1值,再用其算数平均值作为最终结果;而micro将全部类别当作一个整体,只计算1次F1值。因此macro受到样本较少类别影响大,micro受样本较多类别影响大。

灵敏度(sensitivity)

灵敏度其实就是召回率
s e n s i t i v i t y = r e c a l l = T P T P + F N sensitivity= recall = \frac {TP}{TP+FN} sensitivity=recall=TP+FNTP

特异度(specificity)

s p e c i f i c i t y = T N T N + F P specificity= \frac {TN}{TN+FP} specificity=TN+FPTN
该评价指标可以衡量正确预测负样本占负样本的比例。

1 - 特异度

1 − s p e c i f i c i t y = F P T N + F P 1-specificity=\frac {FP}{TN+FP} 1specificity=TN+FPFP
该评价指标可以衡量错误预测负样本占负样本的比例。

ROC曲线

灵敏度又称为真正率,1-特异度又称为假正率,可以看出真正率和假正率都是基于真实样本的条件概率,因此可以有效解决正负样本不平衡的问题。真正率关心的是全体正样本中有多少被预测为真,假正率是关心全体负样本中有多少被预测为真。ROC曲线就是在不同的threshold的条件下(预测结果大于threshold记为预测结果为真,反之为假),将其对应的真正率和假正率作为(y,x)坐标绘制而成。如下图所示:
经典回顾:模型测试集评价指标(模型泛化能力)

AUC(area under curve)

为ROC曲线下的面积,曲线下面积越大越好

参考资料:

https://www.zhihu.com/question/30643044

相关文章: