分类模型的评估

1. 混淆矩阵

对于一个分类器(二分类),预测结果和真实情况总共存在四种情况,

预测值分为正类、负类,真实值分分为正类、父类,两两组合,共有四种情况,如下所示,即组成一个混淆矩阵

 

针对多分类问题,真实情况有N类,预测情况有N类,所以其混淆矩阵为NXN

 

2.Accuracy

准确率即为所有预测正确的样本 / 样本总数

即 Accuracy = (TP+ TN) / (TP+ FN+ FP + TN)

准确率是最常用的评估指标,但是遇到样本不平衡问题,容易失效。

3.Precision&Recall&F1_score

3.1

精度即为预测出的真正的正样本占预测出的正样本的比例,又称查准率

即 Precision = TP / (TP + FP)

3.2

召回率即为预测出的真正正样本占所有正样本的比例,又称查全率

即Recall = TP/ (TP+ FN)

F1分数

精确率和召回率的调和平均

F1 = 2 / (1/Precision + 1/Recall)

4. PR 曲线

一般我们将概率大于0.5判定为1(正例),概率小于0.5判定为0(反例),这样就可以得到一组P值和R值

如果我们将0.4作为划分正例、反例的阈值标准,也可以得到一组P、R值。

根据不懂阈值获得多组P、R值,将他们画在以R为横轴,以P为纵轴的坐标系上,就可以得到一条曲线,即PR曲线

 

阈值 = 0.3时,P = 4 / 7, R= 4 / 4,

阈值 = 0.4时,P = 4 / 6, R= 4 / 4,

阈值 = 0.5时,P = 3/ 4, R= 2 / 4,

阈值 = 0.6时,P = 2 /2 , R=1 / 4,

阈值 = 0.7时,P = 1 / 1, R= 4 / 4,

阈值 = 0.8时,P = 1, R= 0 / 4,

依据此可以绘制出一条PR曲线。

不同的模型有不同的PR曲线,如何根据不同的PR曲线判断模型的好坏呢

 

 图片来源:https://www.jianshu.com/p/ac46cb7e6f87

如果一个学习器的P-R曲线被另一个学习器的P-R曲线完全包住,则可断言后者的性能优于前者,例如上面的A和B优于学习器C。
但是A和B的性能无法直接判断,我们可以根据曲线下方的面积大小来进行比较,
但更常用的是平衡点或者是F1值。平衡点(BEP)是P=R时的取值,如果这个值较大,则说明学习器的性能较好。而F1 = 2 * P * R /( P + R ),同样,F1值越大,我们可以认为该学习器的性能较好。
5. TPR&FPR
5.1
TPR(True Positive Rate)真正例率, 可以理解为所有正类中,有多少被预测成正类(正类预测正确)
TPR = TP / (TP + FN)
5.2
FPR(False Positive Rate)假正例率,可以理解为所有反类中,有多少被预测成正类(正类预测错误)
FPR = FP / (TN + FP)

6.ROC曲线与AUC

同理,根据不同的阈值,会有多组TPR和FPR,这样我们把在这些点画在一个以TPR为纵轴,FPR为横轴的坐标系中,就构成了ROC曲线

ROC曲线下的面积即为AUC

 

 图片来源:https://www.jianshu.com/p/1afbda3a04ab

 当阈值设为0时,预测值全部为正类,TPR = 1, FPR = 1

当阈值为1 时,预测值全部分负类, TPR = 0, FPR= 0,所以可以绘制出上图曲线

根据ROC曲线如何判定模型的好坏呢?

我们肯定是希望TPR却大越好,FPR越小越好,所以AUC越大,模型越好。

posted @ 2020-12-12 11:19  learningcaiji  阅读(311)  评论(0编辑  收藏  举报