评价分类模型的指标
1. 准确率
acc = 分类正确的样本数/总样本数
例如:当样本总数是100,正确分类的样本个数是60,那么
acc = 60/100=0.6 。
缺点:当正负样本不均衡的时候,用准确率不能很好的评估模型的好坏。例如:正样本个数为:995个;负样本个数为:5个;即使我的模型不做任何训练,对所有的数据都判定为正,这样得到的准确率也很高,acc=99.5%。
2. 混淆矩阵
3. F1_score
举例说明:
4.PR曲线、ROC曲线和AUC
(1)PR曲线
对于同一模型,我们可以通过调整阈值得到不同的P-R值,从而得到一条曲线。(P就是查准率(Precision),R就是查全率(Recall)。以P作为横坐标,R作为纵坐标,就可以画出P-R曲线。
当我们比较两个分类器好坏时,P和R都是越大越好也就是图中的曲线越往坐标(1,1)的位置靠近越好。如果一个学习器的P-R曲线被另一个学习器完全”包住”,则后者的性能优于前者。当存在交叉时,可以计算曲线围住面积,不太容易判断,但是可以通过平衡点(查准率=查全率,Break-Even Point,BEP)来判断。例如上图,基于BEP的比较,可以认为A优于B。
(2)ROC曲线和AUC
AUC(Area Under the ROC Curve)指标在模型评估阶段常被用作最重要的评估指标来衡量模型的准确性。AUC作为模型评价指标,用于二分类模型的评价。AUC考虑的是模型预测的排序质量,反映了模型把正例排在反例前面的比例(如果AUC=1,说明模型100%将所有正例排在反例前面)
真正例率,True Positive Rate:TPR = TP/ (TP+FN)
假正例率, False Postive Rate:FPR = FP/(TN+FP)
真正率,正确预测到的正例数与实际正例数的比值(灵敏度)
特异度 ,正确预测到的负例数与实际负例数的比值(NPV = TN / (TN+FN))
将假正例率作为横轴,真正例率作为纵轴,可以得到ROC曲线,而AUC则是ROC曲线下的面积。如下图所示:
对于ROC的图,有几比较重要的点和线:
- [0,0],FPR=TPR=0, 由公式可以看出,TP=FP=0,也就是说模型把所有的样本预测为负例。
- [0,1], FPR=0,TPR=1. 此时FP=FN=0,也就是说模型做出了没有任何错误的完美预测(由此可以看出ROC曲线越是向上凸(贴近上边界),曲线上的点的纵坐标(TPR)越是大,代表模型的性能越好)。
- [1,0], FPR =1,TPR=0. 此时TP=TN=0, 也就是说模型做出的预测全部错误(由此可以看出,ROC曲线越是贴近下边界(下凹),那么模型的性能越是差)。
- [1, 1],FPR =1,TPR=1. 此时TN=FN=0,也就是模型将所有样本均预测为正例。
- 对角线:在对角线上的点都有TPR = FPR, 也就是说对于任意抽取的样本,模型将其中正例预测为正例的概率和将负例预测为正例的概率是相等的.这也就意味着和随机分类的性能一样.
- 对角线左上方的曲线: 一般情况下,机器学习模型要优于随机分类器,因此我们经常看到的曲线都是像图中的ROC曲线.它们相比对角线是有明显上凸的,同样的横坐标(FPR)下,ROC线是大于对角线的,即代表模型将正例预测为正例的概率要大于将负例预测为正例的概率。所以如果模型越往左上方凸,那么效果越好。
AUC:对于任意一对正负例样本,模型将正样本预测为正例的可能性大于将负例预测为正例的可能性的概率。其数值大小(越大越好)代表了模型的性能优劣。
例如: AUC = 0.5, ROC曲线为对角线时, 模型将一对正负例样本中的正样本预测为正例的概率为0.5,将负样本预测为正例的概率也为0.5,相当于于随机分类预测) AUC=0.7,对角线左上方的曲线,其含义可以理解为:模型将一对正负例样本中的正样本预测为正例的概率为0.7。
- AUC = 1:全部分类正确
- 0.5 < AUC < 1,优于随机分类器
- 0 < AUC < 0.5,差于随机分类器
那么为什么要用AUC作为二分类模型的评价指标呢?为什么不直接通过计算准确率来对模型进行评价呢?
因为机器学习中的很多模型对于分类问题的预测结果大多是概率,即属于某个类别的概率,如果计算准确率的话,就要把概率转化为类别,这就需要设定一个阈值,概率大于某个阈值的属于一类,概率小于某个阈值的属于另一类,而阈值的设定直接影响了准确率的计算。也就是说AUC越高说明阈值分割所能达到的准确率越高。
AUC的计算方式:
1、绘制出ROC曲线,然后计算出曲线下包绕的面积,面积值即AUC.
2、假设总共有(T+N)个样本,其中正样本T个,负样本N个,总共有TN个样本对,计数,正样本预测为正样本的概率值大于负样本预测为正样本的概率值记为1,累加计数,然后除以(TN)就是AUC的值