【笔记】混淆矩阵和ROC曲线

本文详细介绍了混淆矩阵的概念,包括真阳性(TP)、假阳性(FP)、真阴性(TN)和假阴性(FN)的定义,并通过实例进行解释。接着,阐述了精确率、召回率、特异度、假阳性率和F1值等重要评估指标的计算方法及其在算法评价中的作用。最后,讲解了ROC曲线的生成原理,以及如何使用sklearn库绘制ROC曲线,强调了AUC值作为模型性能评估的重要性。
摘要由CSDN通过智能技术生成

一、混淆矩阵

预测为真预测为假
真实为真TP (True Positive)FN (False Negative)
真实为假FP (False Positive)TN (True Negative)

案例:

真实值:0 1 1 0 1 1 0 0 1 0 1 0 1 0 0

预测值:1 1 1 1 1 0 0 0 0 0 1 1 1 0 1
在这里插入图片描述

二、重要指标

(1)精确率(precision、positive predictive value、ppv)

TP / (TP + FP)

即鉴定为阳性的所有数据中,确实为阳性的数据所占比。衡量算法的精确度。

(2)召回率(recall、sensitivity(敏感度)、True Positive Rate(真阳性率/TPR))

TP / (TP + FN)

即所有确实为阳性的数据中被鉴定出来的比率。

(3)特异度(specificity、True Negative Rate(真阴性率/TNR))

TN / (TN + FP)

即所有确实为阴性的数据中被鉴定出来的比率。

(4)假阳性率(False Positive Rate(FPR))

FP / (FP + TN)

即所有确实为阴性的数据中被鉴定成阳性的比率。

(5)F1值:精确率和召回率的调和平均数。F1值越接近1,模型输出越好。

2 1 p r e c i s i o n + 1 r e c a l l \Large \frac 2 {\frac 1 {precision} + \frac 1 {recall}} precision1+recall12


三、ROC曲线

在已经通过算法计算得到预测概率的前提下,每确定一个概率阈值,都可以产生一组新的预测值,每组新的预测值都可以和测试集中的真实值计算出一个新的混淆矩阵和对应的TPR、FPR。改变阈值,得到很多对不同的TPR、FPR后,以FPR为X坐标,TPR为Y坐标绘制成折线图,即得到ROC曲线。ROC曲线和X轴与X=1这两条线围成的图形面积叫AUC值,Area Under Curve。
在这里插入图片描述

在sklearn中绘制ROC曲线(数据事先准备):

# 导入metrics
from sklearn import metrics

# 定义一个绘图函数
def show_roc(y_test, scores, pos_label):
    # 得到FPR、TPR和阈值
    fpr, tpr, threshold = metrics.roc_curve(y_test, scores, pos_label=pos_label)
    plt.plot(fpr, tpr, color='green')
    # 绘制对角线
    plt.plot(np.linspace(0,1,10),np.linspace(0,1,10),color='red',ls='--') 
    # 加X轴Y轴标签
    plt.xlabel('FPR')
    plt.ylabel('TPR')
    # 加名字
    plt.title('ROC space')
    plt.show()

# 调用函数
show_roc(y_test, scores, 1)

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sprite.Nym

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值