参考网址
前言
分类任务的常用评价指标:
混淆矩阵(Confuse Matrix)、
准确率(Accuracy)、
精确率(Precision)、
召回率(Recall)、
F1 Score、
P-R曲线(Precision-Recall Curve)、
ROC、
AUC。
1/混淆矩阵(confuse matrix)
针对一个二分类问题,即将样本分成正类(positive)或负类(negative),
在实际分类中会出现以下四种情况:
(1)实际是正类,并且被预测为正类,即为真正类TP(True Positive )
(2)实际是正类,但是被预测为负类,即为假负类FN(False Negative )
(3)实际是负类,但是被预测为正类,即为假正类FP(False Positive )
(4)实际是负类,并且被预测为负类,即为真负类TN(True Negative )
混淆矩阵的每一行是样本的预测分类,每一列是样本的真实分类(反过来也可以)。

2/准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1 Score
<1>准确率(Accuracy)
模型预测正确的样本数量占总量的百分比,不管是正样本,还是负样本,只要预测正确就算。
具体的公式如下:

准确率有一个缺点,就是如果数据的样本不均衡,这个指标是不能评价模型的性能优劣的。
假如一个测试集有正样本99个,负样本1个。
模型把所有的样本都预测为正样本,那么模型的Accuracy为99%,看评价指标,模型的效果很好,但实际上模型没有任何预测能力。
<2>精确率(Precision)
又称为查准率,是针对预测结果而言的一个评价指标。
在模型预测为【正样本】的结果中,实际也是正样本所占的百分比。
具体公式如下:

精准率的含义就是在预测为正样本的结果中,有多少是准确的。这个指标比较谨慎,分类阈值较高。
<3>召回率(Recall)
又称为查全率,是针对原始样本而言的一个评价指标。
在【所有的实际为正样本】中,被预测为正样本所占的百分比。
具体公式如下:

尽量检测数据,不遗漏数据,所谓的宁肯错杀一千,不肯放过一个,分类阈值较低。
<4>F1 Score(调和平均数)
针对精确率和召回率都有其自己的缺点;
a)如果阈值较高,那么精确率会高,但是召回率会低
b) 如果阈值较低,召回率高,但是精确率又会低。

<5>P-R曲线
P-R曲线是描述精确率和召回率变化的曲线。对于所有的正样本,绘制pr曲线。
设置不同的阈值,模型预测所有的正样本,计算对应的精准率和召回率。

标轴围成的`面积`越大,则模型的性能越好。
但一般来说,曲线下的面积是很难进行估算的,所以衍生出了“**平衡点**”(Break-Event Point,简称**BEP**),即当P=R时的取值,平衡点的取值越高,性能更优。
3/ROC曲线和AUC面积
<1>为什么需要roc曲线auc面积
既然已经有了准确率,精确率,召回率,f1_socre这些评价的指标,为啥还需要roc-auc呢?
这是因为当正负样本数据不均匀的时候,准确率,精确率,召回率,f1-socre这些指标都是失效的。
这个时候,就需要roc-auc指标了。

<2>基本概念

<3>ROC
roc(Receiver Operating Characteristic)曲线,又称接受者操作特征曲线。
曲线对应的纵坐标是TPR,横坐标是FPR。

设置不同的阈值,会得到不同的TPR和FPR,而随着阈值的逐渐减小,越来越多的实例被划分为正类,但是这些正类中同样也掺杂着负类,即TPR和FPR会同时增大。阈值最大时,对应坐标点为(0,0),阈值最小时,对应坐标点(1,1)。
理想目标: TPR=1, FPR=0,即图中(0,1)点。故ROC曲线越靠拢(0,1)点,即,越偏离45度对角线越好。对应的就是TPR越大越好,FPR越小越好。
<4>auc(roc曲线下方的面积)
AUC(Area Under Curve)是处于ROC曲线下方的那部分面积的大小。
AUC越大,代表模型的性能越好。
<5>总结
当正负样本差距不大的情况下,ROC曲线和PR曲线的趋势是差不多的,但是当负样本很多的时候,两者就截然不同了,ROC效果依然看似很好,但是PR上反映效果一般。
ROC就不会出现例子一、二、三的情况。