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

news/2024/10/22 15:31:25/

一、定义

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

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分数计算模型得分:

F1=\frac{1}{\frac{1}{2}(\frac{1}{P}+\frac{1}{R})}

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

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


http://www.ppmy.cn/news/1275818.html

相关文章

传统小微企业用 CRM 系统能提高多少业绩?(CRM 系统的功能和效果评估)

CRM管理系统迭代至今,其功能已经非常全面。对于小微企业来说,他们需要的往往还是那些核心的CRM功能。这也表明管理潜在客户和联系人以及自动化销售流程仍然是CRM的主要功能之一。鉴于当今有许多渠道可以接触到客户,营销的作用越来越突出。同样…

13 v-show指令

概述 v-show用于实现组件的显示和隐藏,和v-if单独使用的时候有点类似。不同的是,v-if会直接移除dom元素,而v-show只是让dom元素隐藏,而不会移除。 在实际开发中,v-show也经常被用到,需要重点掌握。 基本…

15 使用v-model绑定单选框

概述 使用v-model绑定单选框也比较常见,比如性别,要么是男,要么是女。比如单选题,给出多个选择,但是只能选择其中的一个。 在本节课中,我们演示一下这两种常见的用法。 基本用法 我们创建src/component…

动态规划 - 509.斐波那契数(C#和C实现)

动态规划 - 509.斐波那契数(C#和C实现) 题目描述 斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1) 1 F(n) F(n - 1…

Django(一)

1.web框架底层 1.1 网络通信 注意:局域网 个人一般写程序,想要让别人访问:阿里云、腾讯云。 去云平台租服务器(含公网IP)程序放在云服务器 先以局域网为例 我的电脑【服务端】 import socket# 1.监听本机的IP和…

webGL开发智慧城市流程

开发智慧城市的WebGL应用程序涉及多个方面,包括城市模型、实时数据集成、用户界面设计等。以下是一个一般性的流程,您可以根据项目的具体需求进行调整,希望对大家有所帮助。 1.需求分析: 确定智慧城市应用程序的具体需求和功能。考…

Qt-QTransform介绍与使用

QTransform是一个用于二维坐标系转换的类。我们知道Qt的坐标系是左上角为原点,x轴向右,y轴向下,屏幕上每个像素代表一个单位,那么,如果我们想要在屏幕上建立自己的坐标系用于绘制,就需要借助QTransform。 …

C++的设计模式总结

通过指针指向一个多态对象来表达灵活性