DataWhale NLP 打卡(二)模型的评估指标:Precision、Recall、ROC、AUC、P-R曲线

 

  • 分类模型评估
指标描述Scikit-learn函数
Precision精准度from sklearn.metrics import precision_score
Recall召回率from sklearn.metrics import recall_score
F1F1值from sklearn.metrics import f1_score
Confusion Matrix混淆矩阵from sklearn.metrics import confusion_matrix
ROCROC曲线from sklearn.metrics import roc
AUCROC曲线下的面积from sklearn.metrics import auc
  • 回归模型评估
指标描述Scikit-learn函数
Mean Square Error (MSE, RMSE)平均方差from sklearn.metrics import mean_squared_error
Absolute Error (MAE, RAE)绝对误差from sklearn.metrics import mean_absolute_error, median_absolute_error
R-SquaredR平方值from sklearn.metrics import r2_score

 

下面详细介绍准确率、精确率、召回率、ROC曲线、AUC、PR曲线

TP、FP、TN、FN

TP:模型将实际为正类的真确预测为正类。P指最终预测结果为positive, T指是正确的预测 true

FP:模型将实际为负类的错误预测为正类。P指最终预测结果为positive, F指是错误的预测 false

TN:模型将实际为负类的正确预测为负类。N指最终预测结果为negative, T指是正确的预测 true

FN:模型将实际为正类的错误预测为负类。N指最终预测结果为negative, F指是错误的预测 false

准确率 Accuracy)

预测准确的在所有样本中的比例,即

精确率 Precision

对于给定的测试数据集,预测结果为正类的数据中,有多少数据被正确预测,即

召回率 Recall

对于所有实际上为正的样本,模型预测正确为正的比例,即

PR曲线

P-R曲线刻画准确率和召回率之间的关系,准确率和召回率是一对矛盾的度量,一般来说,准确率高时,召回率往往偏低,召回率高时,准确率往往偏低。
在很多情况下,我们可以根据学习器的预测结果对样例进行排序,排在前面的是学习器认为最可能是正例的样本,排在后面的是学习器认为最不可能是正例的样本,按此顺序逐个把样本作为正例进行预测,则每次可计算当前的准确率和召回率,以准确率为纵轴,以召回率为横轴,可以画出下面的P-R曲线。

上图来自西瓜书,查准率即准确率,查全率即召回率。

如果一个学习器的P-R曲线被另一个学习器的P-R曲线完全包住,则可断言后者的性能优于前者,例如上面的A和B优于学习器C,但是A和B的性能无法直接判断,但我们往往仍希望把学习器A和学习器B进行一个比较,我们可以根据曲线下方的面积大小来进行比较,但更常用的是平衡点。平衡点(BEP)是查准率=查全率时的取值,如果这个值较大,则说明学习器的性能较好。所以基于平衡点,可以认为学习器A优于B。


ROC曲线与AUC

ROC曲线的两个参数:

  • 真正例率
  • 假正例率

很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值进行比较,若大于阈值分为正类,否则为反类,因此分类过程可以看作选取一个截断点。
不同任务中,可以选择不同截断点,若更注重”准确率”,应选择排序中靠前位置进行截断,反之若注重”召回率”,则选择靠后位置截断。因此排序本身质量的好坏,可以直接导致学习器不同泛化性能好坏,ROC曲线则是从这个角度出发来研究学习器的工具。


ROC全称是"受试者工作特征(Receiver Operating Characteristic)",ROC曲线的坐标轴分别为真正例率(TPR)和假正例率(FPR),TPR为纵轴,FPR为横轴,定义如下:
 

 

在进行学习器比较时,和P-R图类似,若一个学习器的ROC曲线完全"包住"另一个学习器的ROC曲线,则说明前者的性能更好,若二者的ROC曲线发生交叉,则难以一般性的断言二者孰优孰劣。这时可以通过比较ROC曲线下的面积,即AUC(Area Under of ROC Curve),如上图阴影部分面积。

 

ROC曲线:接收者操作特征曲线(receiver operating characteristic curve),是反映敏感性和特异性连续变量的综合指标,roc曲线上每个点反映着对同一信号刺激的感受性。

ROC曲线的横轴是假正率(FP_rate)、是TPR,纵轴是真正率(TP_rate),ROC曲线的面积就是AUC(Area Under the Curve)。

先来了解下,对于计算ROC最重要的三个概念就是TPR, FPR, 截断点(thresholds)。 (1)TPR:真实的正例1中,被预测为正例的比例
TPR即True Positive Rate,TPR = TP/(TP+FN)。(其中,样本中的真实正例类别总数即TP+FN)
(2)FPR:真实的反例0中,被预测为正例的比例
FPR即False Positive Rate,FPR=FP/(TN+FP)。(其中,样本中的真实反例类别总数为FP+TN)
(3)截断点thresholds
机器学习算法对test样本进行预测后,可以输出各test样本对某个类别的相似度概率。比如t1是P类别的概率为0.3,一般我们认为概率低于0.5,t1就属于类别N。这里的0.5,就是”截断点”。

最理想的分类器,就是对样本分类完全正确,即FP=0,FN=0。所以理想分类器TPR=1,FPR=0
(1) 曲线与FP_rate轴围成的面积(记作AUC)越大,说明性能越好,即图上L2曲线对应的性能优于曲线L1对应的性能。即:ROC曲线越靠近A点(左上方)性能越好,代表模型越好,即ACU接近1 ;曲线越靠近B点(右下方)曲线性能越差。
(2) A点是最完美的performance点,B处是性能最差点。
(3) 位于C-D线上的点说明算法性能和random猜测是一样的–如C、D、E点。位于C-D之上(即曲线位于白色的三角形内)说明算法性能优于随机猜测–如G点,位于C-D之下(即曲线位于灰色的三角形内)说明算法性能差于随机猜测–如F点。
(4) 虽然ROC曲线相比较于Precision和Recall等衡量指标更加合理,但是其在高不平衡数据条件下的的表现仍然过于理想,不能够很好的展示实际情况。

  • AUC
    AUC (Area Under Curve) 被定义为ROC曲线下的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围一般在0.5和1之间。使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。简单说:AUC值越大的分类器,正确率越高。

从AUC判断分类器(预测模型)优劣的标准: AUC = 1,是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器。 0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。 AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。 AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。

 


 

参考文献:

https://blog.csdn.net/ljfwz153076024/article/details/89071850#Task2_49
https://blog.csdn.net/qq_14822691/article/details/81051958
https://blog.csdn.net/nc514819873/article/details/89094687
https://github.com/HuanwenW/NLP-2019.github.io/blob/master/Data%20%26%26%20基本概念.md

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值