当前位置:网站首页>【笔记】混淆矩阵和ROC曲线
【笔记】混淆矩阵和ROC曲线
2022-08-03 03:05:00 【Sprite.Nym】
一、混淆矩阵
预测为真 | 预测为假 | |
---|---|---|
真实为真 | 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)
边栏推荐
- Domino服务器SSL证书安装指南
- 【obs】启动推流失败 : Output.StartStreamFailed 调用流程
- ClickHouse数据类型
- 机器学习【KNN案例、API、总结】
- 通过kubernetes可视化界面(rancher)安装kibana
- 【GraphQL】使用Hot Chocolate和.NET 6构建GraphQL应用
- 网易数帆陈谔:云原生“牵手”低代码,加速企业数字化转型
- Get the first/last day of the current week, month, quarter in MySQL
- 金仓数据库 MySQL 至 KingbaseES 迁移最佳实践(3. MySQL 数据库移植实战)
- Linux定时任务脚本执行时mysqldump备份异常的问题
猜你喜欢
Best Practices for Migration from Jincang Database from MySQL to KingbaseES (3. MySQL Database Migration Practice)
【UE4】Build VR live broadcast in LAN UE4.27
IDEA如何创建父子工程
vant-field中colon属性为true报错
How does Excel compare if two columns of strings are the same?
为什么要使用 playwright 做浏览器自动化测试?
【云原生】灰度发布、蓝绿发布、滚动发布、灰度发布解释
【原创】Auto.js get和post 案例
vs studio install opencv environment
企业上云规划与云原生环境设计
随机推荐
密码学的基础:X.690和对应的BER CER DER编码
Jmeter TCP/UDP测试
compose 位移视图
SPI机制是什么?
Dynamically modify the title of the navigation bar in uniapp
有大佬知道 使用flinksql是 同步的日期字段为null的话怎么处理吗
第八章 字符输入输出和输入验证
【云原生】灰度发布、蓝绿发布、滚动发布、灰度发布解释
什么样的存储服务,才能成为企业数字化创新“加速器”?
C语言实验十一 指针(一)
为什么要使用 playwright 做浏览器自动化测试?
关于 Redis 必问面试题,你知道哪些?
uniapp运行到手机,基座提示本应用无法独立运行,需要与hbuilderX 搭配使用
# RACE32——高级断点的设置和应用
How to write test cases in software testing technology (2)
zyMedia系列之播放视频
leetcode:139. 单词拆分
【云原生】服务行业案例-不可预测的并发场景解决方案
Linux定时任务脚本执行时mysqldump备份异常的问题
List<Object>转List<User>: