评估指标(上)

算法篇

评估指标(上)

混淆矩阵

在介绍评估指标之前,先来认识一下混淆矩阵,在分类任务下,预测结果和真实结果之间存在四种不同组合,这四种不同结果构成了混淆矩阵
在这里插入图片描述
看着这个表确实挺混淆的,不愧是混淆矩阵。
接下来我来解释一下这个混淆矩阵,它分为预测结果和真实结果

  • 我们知道预测结果不一定全是对的,需要和真实结果来作比较,比如在真实结果中有5个正例,95个反例;
    真实结果:0 0 0 0 0 0 0 0…0 0 0 1 1 1 1 1
    预测结果:0 0 0 0 0 0 0 0…1 1 1 1 1 1 0 0
    1为要预测的值
  • 那么在预测结果预测为正例P中的3个预测正确的数据就是真正例TP
  • 在预测结果中预测为正例中的3个预测错误的数据就是伪正例FP
  • 在预测结果中预测为反例(N)中的2个预测错误的数据就是伪反例FN
  • 在预测结果中预测为反例中的92个预测正确的数据就是真反例TN
精准率(precision)

也叫查准率,即预测结果中为1的6个中有几个是预测正确的,在混淆矩阵中精准率为TP/( TP+FP )

召回率(recall)

也叫查全率,即真实结果中为1的5个中预测出了几个正确的,在混淆矩阵中召回率为TP/( TP+FN )

# 代码中用于计算精准率和召回率的导包为
from sklearn.metrics import confusion_matrix
# metrics意为度量,参数为真实结果和预测结果
# 返回值为四个tn、fp、fn、tp,
# 精准率和召回率需要自己计算
from sklearn.metrics import precision_score
# 只能计算精准率,参数为真实结果和预测结果,average默认只关注类1
from sklearn.metrics import recall_score
# 只能计算召回率,参数为真实结果和预测结果,average=None为类1和类0的列表
f1-score
from sklearn.metrics import f1_score
# 参数和上面的相同

计算公式f1 = 2*PR/(P+R)
原理是计算了各类精准率的均值和召回率的均值,在不同算法下精准率和召回率不太好选择时使用f1-score

分类报告
from sklearn.metrics import classification_report
# 参数和上面相同

在这里插入图片描述
分类报告的返回值:返回各类的精准率,召回率,f1-score,和数据数量,accuracy为准确率,macro avg为均值,weighted avg为加权平均【(420.93+720.95)/114】
但是从中拿去数据还是比较麻烦的,大多数做观察使用

PR曲线

用于比较多种不同的算法预测结果的好坏程度,精准率P做y轴,召回率R做x轴,给出不同的正类范围绘出不同的P和R绘制曲线,根据面积的大小来判断算法的好坏

from sklearn.metrics import plot_precision_recall_curve
# 参数是算法类型,测试集特征,测试集标签

在这里插入图片描述
在PR曲线中,表示的精准率和召回率,在分类任务中,往往是随着精准率的逐渐增大,召回率是逐渐减小的,所以需要在PR曲线中找到他们的近似的平衡点,才能代表相对较好的结果

ROC曲线和AUC指标

又叫受试者工作特征,和PR曲线比较类似,但是它是以类1的召回率(真正例率)TPR=TP/( TP+FN )作为y轴,以1 - 类0的召回率(假正例率)FPR=FP/(TN+FP)=1 - [ TN/(TN+FP) ]。

from sklearn.metrics import plot_roc_curve
# 参数是算法类型,测试集特征,测试集标签

在这里插入图片描述
ROC曲线则是假正例率趋于0,真正例率趋于1的时候是最好的点,也就是说类1的召回率和类0的召回率都趋近于1时效果最好。
AUC指标为ROC曲线下的面积

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值