首页 > 其他分享 >机器学习评价指标总结(二分类篇)

机器学习评价指标总结(二分类篇)

时间:2023-06-24 22:11:15浏览次数:46  
标签:总结 正例 曲线 机器 模型 ROC 精确 召回 评价

目录

疾病预测

我们以疾病预测为例子来介绍分类的指标。疾病预测是一个二分类预测任务,我们需要预测患者是否患有疾病。

如下图,假设一共有100个样本,其中90个是正常未患病的人,10个是患病的人,现在模型预测出12个患病的人,88个未患病的人。

预测患病的人中,8人真正患病(真阳性),4人并未患病(假阳性)。预测未患病的人中,86人未患病(真阴性),4人患病(假阴性)。

我们根据预测的结果和真实值可以计算出常见的评估指标,以下将结合该例子进行具体介绍。

混淆矩阵

混淆矩阵(Confusion Matrix)是用于评估二分类问题的指标,它展示了模型的预测结果与真实标签之间的对应关系。

混淆矩阵将预测结果分为四个不同的类别:真阳性(True Positive, TP)、假阴性(False Negative, FN)、假阳性(False Positive, FP)和真阴性(True Negative, TN)。

它的具体构成如下:

预测为正例 预测为负例
真实为正例 True Positive (TP) False Negative (FN)
真实为负例 False Positive (FP) True Negative (TN)

在上面的例子中,混淆矩阵即为:

预测为正例 预测为负例
真实为正例 8 2
真实为负例 4 86

基于这个混淆矩阵,我们可以计算出一些二分类指标来评估模型的性能。常见的指标包括准确率(Accuracy)、精确率(Precision)、召回率(Recall)和F1分数(F1 Score)等。

基础指标

准确率(Accuracy)

准确率表示模型正确预测的样本数占总样本数的比例,计算公式为:

\[Accuracy = \frac{TP + TN}{TP + TN + FP + FN} \]

按照上述例子的情况,准确率的计算为:

精确率(Precision)

精确率衡量的是模型在预测为正样本的样本中有多少是真正的正样本,也就是预测为正例的样本中,真正为正例所占的比例,计算公式为:

\[Precision = \frac{TP}{TP + FP} \]

按照上述例子的情况,精确率的计算为:

召回率(Recall)

召回率衡量的是在所有实际为正样本中,有多少被正确地预测为正样本,计算公式如下:

\[Recall = \frac{TP}{TP + FN} \]

按照上述例子的情况,召回率的计算为:

精确率和召回率的关系

精确率和召回率是互相影响的。在某些情况下,提高精确率可能会导致召回率降低,反之亦然。

精确率的目标是尽可能地减少将负样本错误的预测为正样本的情况,即减少假阳性的数量。在疾病预测的例子中,精确率表示模型能够将样本正确预测为患病的能力。

而召回率的目标是尽可能地识别出所有的真正的正样本,也就是减少假阴性的数量。在疾病预测的例子中,召回率表示模型能够正确识别出患病样本的能力,避免将患病的人错误地预测为健康。

这两个指标提供了对模型性能的不同视角,因此我们需要一些指标来综合衡量模型的性能。

综合指标

除了精确率和召回率,还有一些综合指标可以用于评估分类模型的性能,包括 F1 分数、ROC 曲线和 AUC。

F1 分数(F1 Score)

F1 分数综合考虑了精确率和召回率,是精确率和召回率的调和平均值,计算公式如下:

\[F1 \; score = \frac{2 \times (Precision \times Recall)}{Precision + Recall} \]

F1 分数的取值范围为 0 到 1,其中分数较高的情况表示模型能够同时取得较高的精确率和召回率,即模型能够在保持准确性的同时捕捉到更多的真实正例。

P-R曲线

在二分类问题中,我们使用一个阈值来决定将样本预测为正例还是负例,当模型输出的概率值或得分值超过该阈值时,我们将样本预测为正例;否则,将样本预测为负例。

不同的阈值会导致分类结果的变化,当阈值较低时,模型更容易将样本判定为正例,这可能会提高召回率,但精确率可能会降低。相反,当阈值较高时,模型更谨慎地将样本判定为正例,这可能会提高精确率,但召回率可能会降低。

因此,我们需要找到一个平衡点,而P-R曲线(Precision-Recall Curve)就是用来展示精确率和召回率在不同阈值下的变化关系的。

在P-R曲线上,横轴表示召回率,纵轴表示精确率。通过计算F1分数,我们能够找到一个合适的阈值来平衡二者。

平均精确率均值(Average Precision)

平均精确率均值(Average Precision, AP)是 P-R 曲线下的面积。AP 衡量了模型在不同召回率水平下的平均精确率,越高的 AP 值表示模型性能越好。

ROC曲线

ROC曲线(Receiver Operating Characteristic Curve),ROC曲线是以不同阈值下的假阳性率(False Positive Rate)和真阳性率(True Positive Rate)为横纵轴绘制的曲线。

其中FPR和TPR的定义如下:

\[FPR = \frac{FP}{FP + TN} \]

\[TPR = recall = \frac{TP}{TP + FN} \]

按照上述的例子,假阳率的计算为:

真阳率的计算为:

在计算了TPR和FPR之后,我们就能得到一个ROC曲线上的一个坐标点,即(0.044, 0.8)。要绘制完整的 ROC 曲线,需要在不同的阈值下计算多个TPR和FPR值,并将它们连接起来形成一条曲线,即完整的ROC曲线。

对于ROC曲线来说,x轴的值越小,则负样本中被误报的比例越小,真阴性越多。y的值越大,则真阳性的比例更大,假阴性越少,漏报较低。

ROC曲线更接近左上角,说明模型能够有效地区分正例和负例。通过观察 ROC 曲线的形状和接近左上角的程度,我们可以了解模型在不同阈值下的性能优劣。

绘制ROC曲线后,可以通过平衡误报和漏报的情况来选择合适的阈值。

AUC(ROC曲线下面积)

对于不同的模型,我们可以绘制出两条ROC曲线,那么如何通过ROC曲线来比较模型的性能呢?

除了ROC曲线的形状,可以计算每个模型的 ROC 曲线下的面积(AUC)来比较不同的模型,较高的 AUC 值表示模型具有更好的分类能力和区分能力。

对比P-R/AP 和 ROC/AUC

目标:P-R 曲线关注的是精确率和召回率之间的权衡,重点在于正例的预测准确性和发现率。而 ROC 曲线关注的是真阳性率和假阳性率之间的权衡,重点在于模型在不同阈值下对正例和负例的分类能力。

敏感性:P-R 曲线更加敏感于正例样本的变化,尤其在正例样本较少的情况下,P-R 曲线可以更好地评估模型的性能。而 ROC 曲线更适用于每个类的观测数值大致相同的情况。

标签:总结,正例,曲线,机器,模型,ROC,精确,召回,评价
From: https://www.cnblogs.com/slowlai/p/17292293.html

相关文章

  • 暑期第二周总结
    1)本周做了什么,花在学习上多长时间,花在代码时间上多长时间,花在解决问题用了多长时间。本周我主要关注于几个方面的学习和实践:继续学习SpringBoot、了解和应用Filter和Interceptor、算法与数据结构的学习、Java文件操作、JWT令牌以及MyBatis中XML文件的映射。下面是我对本周学习内......
  • Qt/c++类型转换总结
    1、static_cast、dynamic_cast、强制转换(reinterpret_cast和const_cast)、qobject_cast、qstatic_cast以及qdynamic_cast的区别:static_cast:用于执行静态类型转换,可以进行常见的类型转换,例如基本类型之间的转换、向上转型、向下转型(但没有运行时类型检查)等。在C++中......
  • OOP面向对象第三阶段学习总结
    OOP面向对象第三阶段学习总结目录 · 前言 · 设计与分析 · 踩坑心得 · 改进建议 · 总结 一、前言不知不觉OOP学习就已经来到了尾声,也即将要步入大二,回头望来,总总令人感慨。第三阶段的学习主要包括,一些set和map的用法。更加抽象点的提升呢,就是对自身对于......
  • 暑期第一周总结
    这周完成了对Linux系统的学习,安装了vm虚拟机,配置了4个centos虚拟机,完成了虚拟机之间的免密登录等到一系列的操作,虚拟机配置了java环境,hadoop环境,创建了三台服务器,并且针对虚拟机和服务器都实现了ssh连接,对ssh连接的服务器进行了很多一系列的配置,创建了hadoophdfs集群总之,很麻烦,......
  • 机器学习复习4
    机器学习复习1-在下面的训练集中,\(x_4^{(3)}\)是什么?输入数字(这是一个整数,如123,没有小数点)答案:302-以下哪些是矢量化的潜在好处?请选择最佳选项。A.它可以使你的代码运行得更快B.它可以使你的代码更短C.它可以使你的代码更容易在并行计算硬件上运行D.以上都是答......
  • 机器学习复习3
    机器学习复习1-哪一个是分类任务的例子?A.根据肿瘤的大小,判断是否是恶性肿瘤B.根据患者年龄和血压,判断应该给患者开多少血压药C.根据患者的血压,判断应该给患者开多少血压药答案:A2-回忆一下Sigmoid函数:\[g(z)=\frac{1}{1+e^{-z}}\]如果z是一个大的正值,那么:A.\(g(......
  • 【考后总结】6 月西安多校模拟赛 5
    6.24冲刺国赛模拟24T2简单图论题原题:Gym-104053CCustomsControls2构造题。这个限制可以进一步加强到对于每个节点\(u\),\(1\tou\)的路径权值都相等,定义为\(d_u\)。于是对\(u\)连边的两个节点的\(d\)一定相等,进而可以把所有相等的缩到一起,且这些点直接不能连边(点......
  • 大二暑假第一周总结
    这周就开始了小学期,这周的小学期的是算法与数据结构综合训练,总共是分为两个阶段,第一阶段是基础算法训练,第二阶段是综合算法训练。第一阶段是基础算法演示,验收的时候非常顺利,同时参与了评优,成功评上。第二阶段我选的是导师双选系统,并且也在周五就已经完成,然后后面就是测试自己的......
  • 【考后总结】6 月西安多校模拟赛 4
    6.21冲刺国赛模拟22T1跳跃不妨看作两只青蛙从相同起点出发且跳跃次数相同,设\(f_{i,j,k}\)为两只青蛙分别在\(i,j\)位置,且相差步数\(k\)。由于需要记录相邻位置对答案贡献,我们在要求必须严格按照升序对处理状态,也就是必须保证当前跳跃的一只青蛙落点在另一只青蛙更前面,且......
  • pta题目集7~11总结性Blog
    前言:第七次题目集:本次题目集是菜单计价系统的一次迭代,在原有功能的基础上对输入的特色菜分为川菜,晋菜和浙菜三类,并在最后输出一桌的价格的时候还要将三种特色菜的点菜的口味程度一起输出,还要求对每位顾客的姓名和手机号进行格式的规范。本次题目需要在之前的菜单计价系统的基础之......