【机器学习】043_准确率、精确率、召回率

一、定义

在处理偏斜数据集时,通常使用不同的误差度量,而不仅仅是使用分类误差来衡量算法性能。

1. 混淆矩阵的概念

二分类问题的混淆矩阵为2X2矩阵,由四部分组成:

**假阴性(FN):**模型预测为负(N),但实际上是正(P)的个数。

**真阴性(TN):**模型预测为负(N),实际上也是负(N)的个数。

**假阳性(FP):**模型预测为正(P),但实际上是负(N)的个数。

**真阳性(TP):**模型预测为正(P),实际上也是正(P)的个数。

2. 准确率、精确率、召回率的定义

· 准确率:真阳性+真阴性的数量 / 总的预测结果数量;

· 精确率:真阳性的数量 / 分类为阳性的数量;

· 召回率:真阳性的数量 / 实际为阳性的数量;

二、作用

精确率越高,表示在一个二分类问题中,若某个输入真实值为1,那么模型预测其为1的精确度越高(让现有的预测结果更不容易出错)。

召回率越高,表示在一个二分类问题中,若某个输入真实值为1,那么模型会识别出其为1的概率越高(让模型更能预测到所有值有可能为1的样本)。

例:以预测地震模型为例。预测某天发生地震记为1,不发生记为0;

假设实际上第50天、第100天都发生了地震。

**精确率越高,表示宁愿地震了没报,也不能误报地震------不错报1。**在这种情况下,模型可能只预测了第50天发生地震,但是假阳性的数量很少。此时精确率为1/1=100%;召回率为1/2=50%。

**召回率越高,表示宁愿可能没有发生地震,也不能漏报地震------不漏报1。**在这种情况下,模型可能预测了第50天、第75天、第100天都发生地震,此时召回率为2/2=100%;精确率为2/3=75%。

三、权衡精确率、召回率

1. 根据实际问题设置二分类预测结果的阈值

例如诊断罕见疾病,设置阈值为0.5时,超过0.5预测为1,低于0.5预测为0。但是实际上我们可能需要对该预测结果"足够有信心",也就是说当预测为1时,能够更有把握确定病人确实患了该疾病,那么就需要调高精确率。

此时,设置一个更高的阈值,比如0.7,就使得模型预测为1的门槛更高了,也就提高了预测精度。

但当设置精确值较高时,由于我们忽略掉了一些真值为1但是却并不过于明显的数据,就会使得召回率变得更低。

这就使得有些罕见疾病的病例被模型遗漏了,也就是说更多的患者并没有被模型识别出来。

一般来说,设置更高的阈值就会得到更高的准确率,同时牺牲召回率。

2. F1分数------自动结合精度召回率来帮助权衡

例:假设现在有三个机器学习算法模型:

算法①:较高的精确率,较低的召回率;

算法②:较高的召回率,较低的精确率;

算法③:两者较为均衡;

为了在三个算法模型之间进行取舍,我们可以计算各个算法相对应的分数。按分数进行抉择。

应用F1分数计算模型得分:

※式中,P和R分别代表精确率和召回率。

F1分数更多地关注P和R中较低的那个数值。因为当精确率或召回率太低,这个模型基本没有太大作用。

相关推荐
东临碣石828 分钟前
【AI论文】BlenderFusion:基于三维场景的视觉编辑与生成式合成
人工智能
正在走向自律9 分钟前
第二章-AIGC入门-开启AIGC音频探索之旅:从入门到实践(6/36)
人工智能·aigc·音视频·语音识别·ai音乐·ai 音频·智能语音助手
Trent198515 分钟前
影楼精修-智能修图Agent
图像处理·人工智能·计算机视觉·aigc
烟锁池塘柳016 分钟前
【大模型】解码策略:Greedy Search、Beam Search、Top-k/Top-p、Temperature Sampling等
人工智能·深度学习·机器学习
风逸hhh31 分钟前
python打卡day58@浙大疏锦行
开发语言·python
盼小辉丶32 分钟前
PyTorch实战(14)——条件生成对抗网络(conditional GAN,cGAN)
人工智能·pytorch·生成对抗网络
Allen_LVyingbo1 小时前
数智读书笔记系列035《未来医疗:医疗4.0引领第四次医疗产业变革》
人工智能·经验分享·笔记·健康医疗
zzc9211 小时前
时频图数据集更正程序,去除坐标轴白边及调整对应的标签值
人工智能·深度学习·数据集·标签·时频图·更正·白边
isNotNullX1 小时前
什么是数据分析?常见方法全解析
大数据·数据库·数据仓库·人工智能·数据分析
烛阴1 小时前
一文搞懂 Python 闭包:让你的代码瞬间“高级”起来!
前端·python