白话机器学习1:分类问题中的评价指标

        机器学习中的评价指标非常多,它们用来衡量模型的性能和预测能力。不同类型的机器学习任务可能需要不同的评价指标。以下是一些常见的评价指标,按照不同类型的机器学习任务分类:

对于分类问题:

  1. 准确率(Accuracy)
  2. 精确率(Precision)
  3. 召回率(Recall)或灵敏度(Sensitivity)
  4. F1分数(F1 Score):精确率和召回率的调和平均
  5. 受试者工作特征曲线(ROC Curve)下方的面积(AUC-ROC)
  6. 预测概率的对数损失(Log Loss)
  7. 混淆矩阵(Confusion Matrix)
  8. Matthews相关系数(MCC)
  9. 汉明损失(Hamming Loss)
  10. Jaccard相似系数

对于回归问题:

  1. 均方误差(Mean Squared Error, MSE)
  2. 均方根误差(Root Mean Squared Error, RMSE)
  3. 平均绝对误差(Mean Absolute Error, MAE)
  4. 平均绝对百分比误差(Mean Absolute Percentage Error, MAPE)
  5. R平方(R²)或决定系数

对于聚类问题:

  1. 轮廓系数(Silhouette Coefficient)
  2. 戴维森堡丁指数(Davies-Bouldin Index)
  3. Calinski-Harabasz指数
  4. Dunn指数

对于排名问题:

  1. 平均精度均值(Mean Average Precision, MAP)
  2. 规范化折扣累计增益(Normalized Discounted Cumulative Gain, NDCG)

对于异常检测:

  1. 命中率(Hit Rate)
  2. 假阳性率(False Positive Rate)

对于推荐系统:

  1. 准确率@K(Precision@K)
  2. 召回率@K(Recall@K)
  3. 覆盖率(Coverage)

        接下来我就举一个简单的例子,来给出分类问题中的评价指标的直观理解。

一、分类问题中的评价指标

        我们使用一台机器或一个模型,它的任务就是从一堆水果中找出所有的苹果。

  1. 准确率(Accuracy): 这就是我们模型做得有多好的整体打分。如果模型选择了100个水果,其中90个确实是苹果,那么准确率就是90%。                                           Accuracy = \frac{TP}{TP + FP}                                                                                                             其中TP是真正例(True Positives,即正确识别的苹果)的数量,而FP是假正例(False Positives,即错误识别为苹果的其他水果)的数量。

  2. 精确率(Precision): 当模型声称找到了一个苹果时,它是对的有多少次?如果模型选了50个水果说是苹果,但其中只有40个是真的苹果,那么精确率就是80%。

      3.召回率(Recall)或灵敏度(Sensitivity): 在所有的苹果中,模型找到了多少?如果有100个苹果,模型只找到了80个,那么召回率就是80%。

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

        其中FN是假负例(False Negatives,即错过的苹果)的数量。

     4.F1分数(F1 Score): 这个分数试图同时考虑精确率和召回率,给出一个平衡的分数。如果精确率和召回率都很高,F1分数就会很高。所以它是精确率和召回率的一种平衡。它告诉我们机器在同时不错过任何一个真苹果(召回率高)和不错误地把其他水果当作苹果(精确率高)方面表现如何。想象一下,如果你的机器挑出了很多水果说它们是苹果(以增加它找到真苹果的机会,从而提高召回率),但其实其中很多都不是苹果,它的精确率就会很低。反过来,如果机器非常小心,只有在100%确定的时候才会选择一个水果并说它是苹果,那么它可能会错过很多真正的苹果,这样召回率就低了。                                                                                                                F1-Score计算式是精确率和召回率的调和平均数:F1 = 2 \times \frac{Precision \times Recall}{Precision + Recall}

          5.受试者工作特征曲线(ROC Curve)下方的面积(AUC-ROC): 这是用来衡量模型分辨正类和负类的能力。AUC-ROC是一个介于0和1之间的数,这个数越接近1,表示模型的性能越好。

            这个找苹果的机器有一个特殊的功能,我们可以调节它的灵敏度:调高灵敏度,它会更有可能把一个水果识别为苹果,但这样也可能会把一些不是苹果的水果错认为是苹果(比如橘子);调低灵敏度,它就变得更加谨慎,只有非常确定的时候才会说这是一个苹果,这样它可能就会错过一些真正的苹果。

        现在,受试者工作特征曲线(ROC Curve)就像是一个记录本,记录了在我们不断调整机器灵敏度时,机器找出真正苹果和错误标记苹果的能力。每次调整,我们都记录下两件事情:真正例率(True Positive Rate,TPR):机器正确识别为苹果的水果占所有真正的苹果的比率。假正例率(False Positive Rate,FPR):机器错误地把非苹果识别为苹果的情况占所有实际上非苹果水果的比率。

     6.预测概率的对数损失(Log Loss): 预测概率的对数损失(也称为逻辑损失或交叉熵损失)是一个衡量模型预测不确定性的分数。这个分数越低,表示模型越有信心它的预测是正确的,即模型的预测越准确。

        我们模型的任务是从一堆水果中识别出苹果。这是一个二分类问题,其中一个类别是苹果(我们可以标记为1),另一个类别是非苹果(我们可以标记为0)。

        对于二分类问题,对数损失函数定义如下:

        对于给定的真实标签y_i (其中y_i  是0或1)和模型预测该类别的概率\hat{y}_i(即模型预测为苹果的概率),对数损失的计算公式为:

      L(y_i, \hat{y}_i) = -\left( y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i) \right) 

        其中L(y_i, \hat{y}_i) 是单个样本的对数损失。如果我们有 N 个样本,那么整体的对数损失为这些单个损失的平均值:

      \text{Log Loss} = -\frac{1}{N} \sum_{i=1}^{N} \left( y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i) \right) 

这个公式考虑了两种情况:

  1. 真实标签 y_i为1时,我们关心的是\log(\hat{y}_i)的值。如果模型预测\hat{y}_i接近1,那么 (\log(\hat{y}_i)) 接近0,损失较小;如果\hat{y}_i接近0,那么\log(\hat{y}_i) 会变得很小(负的很大),导致损失增大。

  2. 真实标签 y_i为0时,我们关心的是\log(1 - \hat{y}_i) 的值。如果模型预测 \hat{y}_i接近0,那么\log(1 - \hat{y}_i)  接近0,损失较小;如果 \hat{y}_i接近1,那么\log(1 - \hat{y}_i)会变得很小(负的很大),导致损失增大。

        因此,对数损失惩罚那些正确类别的预测置信度低的情况。对于一个完美的模型,它对真实类别的预测概率将总是1,所以对数损失将是0。请注意,因为对数函数的定义域是(0,1) ,预测概率 \hat{y}_i必须在这个范围内,不能是0或1,否则会导致对数计算为无穷大,即\log(0) = -\infty

在实践中,模型可能会对包含苹果的图片给出一个概率(比如说0.8),而对不包含的图片给出另一个概率(比如说0.1)。对数损失就是用来衡量这些概率预测的准确性。

     7.混淆矩阵(Confusion Matrix): 是一个用来显示模型预测正确和预测错误的次数的表格。它可以帮助我们详细了解模型在哪些方面做得好,在哪些方面做得不好。

        还是以找苹果的二分类问题:苹果(正类)和非苹果(负类)。在这种情况下,混淆矩阵可以被定义为4个部分:

  1. 真正类(True Positives, TP):模型正确预测为苹果的苹果数量。
  2. 假正类(False Positives, FP):模型错误预测为苹果的非苹果数量。
  3. 真负类(True Negatives, TN):模型正确预测为非苹果的非苹果数量。
  4. 假负类(False Negatives, FN):模型错误预测为非苹果的苹果数量。

这四个部分可以在一个2x2的矩阵中展示,如下所示:

真实 / 预测苹果(正类)非苹果(负类)
苹果(正类)TPFN
非苹果(负类)FPTN

通过混淆矩阵,我们可以计算出多种性能指标,如精确率、召回率和F1分数等:

  • 精确率(Precision)是指在所有模型预测为苹果的情况中,实际上是苹果的比例,公式为:Precision = \frac{TP}{TP + FP}
  • 召回率(Recall)是指在所有实际为苹果的情况中,被模型正确预测为苹果的比例,公式为:Recall = \frac{TP}{TP + FN}
  • F1分数(F1 Score)是精确率和召回率的调和平均值,用于在一个指标中同时考虑精确率和召回率,公式为:F1 = 2 \times \frac{Precision \times Recall}{Precision + Recall}

     8.Matthews相关系数(MCC): 这是一个介于-1和1之间的数,用来衡量你的模型的性能。如果是1,表示完美的预测;如果是0,表示不好也不坏,基本上和随机猜测没什么区别;如果是-1,表示预测完全相反。

        从一堆水果中找出所有的苹果,我们可以使用MCC来评估模型识别苹果(正类)和非苹果(负类)的能力。

MCC的计算公式为:\text{MCC} = \frac{(TP \times TN) - (FP \times FN)}{\sqrt{(TP + FP)(TP + FN)(TN + FP)(TN + FN)}}

        这个公式通过考虑所有的预测结果(包括正类和负类的正确与错误预测),来提供一个综合的性能衡量。由于MCC同时考虑了预测的四个方面,即使在数据集不平衡的情况下,它也能提供一个公正而有用的性能评估。

        在大量的水果中(其中苹果只占很小一部分)表现出高准确率,这可能只是因为它总是预测最常见的类别(即非苹果)。在这种情况下,准确率可能会误导我们认为模型表现良好,但MCC将提供一个更真实的性能指标,清楚地显示模型在识别少数类(苹果)方面的实际能力。

     9.汉明损失(Hamming Loss): 这个指标用来测量预测错误的标签的比例。比如,如果一个水果应该被标记为苹果而被错误地标记为橘子,这就会计入汉明损失。

        我们将每个水果的预测(是否被识别为苹果)看作一个标签,那么汉明损失就可以用来衡量模型在这个任务上的平均错误率。

汉明损失的计算公式如下:

\text{Hamming Loss} = \frac{1}{N} \sum_{i=1}^{N} \frac{xor(y_i, \hat{y}_i)}{L}

其中:

  • N 是数据集中样本的总数。
  • L 是每个样本的标签数量,在我们的例子中,由于我们只关心是否为苹果,每个样本的标签数量为1。
  • y_i 是第i个样本的真实标签。
  • \hat{y}_i是第(i)个样本的预测标签。
  • xor(y_i, \hat{y}_i) 是一个逐位异或操作,用来计算每个样本的真实标签和预测标签之间的不一致标签数量。在二分类问题中,如果预测正确,(xor)的结果为0;如果预测错误,结果为1。

由于在我们的例子中,每个样本的标签数量(L=1),汉明损失简化为样本预测错误的比例:

\text{Hamming Loss} = \frac{1}{N} \sum_{i=1}^{N} xor(y_i, \hat{y}_i)

        这意味着,如果所有的水果都被准确地识别(苹果被识别为苹果,非苹果被识别为非苹果),那么汉明损失为0,这是理想情况。如果有错误的预测(比如,苹果被错误地标记为非苹果,或者非苹果被错误地标记为苹果),汉明损失会增加。汉明损失越低,模型的性能就越好。

     10.Jaccard相似系数: 这个指标衡量的是预测正确的正例在所有被预测和实际为正例的集合中所占的比例。简单地说,就是模型找到的真正的苹果和实际上的苹果有多相似。

        使用Jaccard相似系数可以帮助我们评估模型将苹果从其他水果中分离出来的效果。具体来说,我们可以将模型识别为苹果的水果集合与实际为苹果的水果集合进行比较。

Jaccard相似系数的计算公式是:J(A, B) = \frac{|A \cap B|}{|A \cup B|}

其中:

  • A 是第一个集合,在我们的例子中,它代表模型识别为苹果的水果集合。
  • B 是第二个集合,在我们的例子中,它代表实际为苹果的水果集合。
  • |A \cap B|表示集合A和B的交集的元素数量,即正确识别为苹果的数量。
  • |A \cup B|表示集合A和B的并集的元素数量,即模型识别为苹果的数量加上错过的苹果数量。

例如,如果有10个苹果和90个其他水果,模型识别出了8个苹果,并且其中有7个是真正的苹果(一个是错误识别的),则:

  • A(模型识别为苹果的集合)包含8个元素。
  • B(实际为苹果的集合)包含10个元素。
  • A \cap B(正确识别为苹果的集合)包含7个元素。
  • A \cup B(被识别为苹果的集合加上未被识别的真苹果的集合)包含11个元素(因为有一个非苹果被错误地识别为苹果)。

因此,Jaccard相似系数为:J(A, B) = \frac{7}{11} \approx 0.636

这个值反映了模型在区分苹果和非苹果水果方面的效果。Jaccard相似系数越接近1,表示模型的性能越好;相似系数越低,表示模型的性能越差。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/581605.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

百度竞价开户详解:步骤、优势与注意事项

随着互联网的普及,网络营销已成为企业不可或缺的一部分。其中,百度竞价作为一种高效的网络推广方式,受到了越来越多企业的青睐。本文将详细介绍百度竞价开户的流程、优势以及注意事项,帮助企业更好地利用这一工具提升品牌知名度和…

ubuntu安装Anaconda安装及conda使用

一. 安装anaconda3详细教程 1、下载镜像 清华大学开源软件镜像站下载地址: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 下拉到最低端选择Linux,选择最新版(32/64位)下载。这里我下载的是版本Anaconda3-4.3.30-Linux…

Spire.PDF for .NET【文档操作】演示:创建 PDF/A 并插入图像的超链接

PDF/A 广泛用于 PDF 格式的长期归档。通过使用Spire.PDF,您可以直接创建PDF/A文件。本文主要介绍如何建立PDF/A文件;它还将演示如何在 C# 中添加图像和插入图像的超链接。 确保Spire.PDF for .NET(版本 2.9.43 或更高版本)已正确…

TikTok引流中海外云手机的实用功能分享

在当下,TikTok已成为全球范围内最受欢迎的社交媒体平台之一,拥有着庞大的用户群体和潜在的商业机会。为了在TikTok上实现更好的引流效果,利用海外云手机成为了一个明智的选择。接下来,我们将深入探讨海外云手机的功能以及它如何助…

神经网络的反向传播

梯度下降算法 🔥我们来看一下神经网络中的梯度下降算法🔥 梯度下降法是一种优化算法,用于寻找目标函数的最小值。梯度是一个向量,表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处变化最快的方向…

IDEA 开发找到 java-web 发布到 tomcat 的路径

使用 IDEA 开发 java web 应用,有没有遇到需要找到 tomcat 路径的问题 为什么要找 tomcat 路径呢? 拿我的项目来举例,有统一的线上线下 logback.xml 配置,配置时业务、框架日志输出到 file,少量的启动日志输出到 con…

基于MATLAB野外观测站生态气象数据处理分析

朱老师(副教授):来自国内重点高校,长期从事野外观测站生态气象监测与评估研究,发表SCl论文多篇,主持国家与地方科研项目多个,在生态环境数据处理与分析中具有丰富的实践项目经验。 以野外观测站高频时序生态气象数据为例&#xff…

uniapp 对接facebook第三方登录

1.登录facebook开发者中心,打开我的应用页面在这里插入图片描述 2.创建应用 3.选择类型 4.填写信息 5.添加登录 6.添加平台 安卓密钥生成【需要 Java 环境!!! 和 openssl库】 Google Code Archive 的 Windows 版 openssl-for-windows OpenSSL 库 将openssl下载到…

elasticsearch 聚合查询

文章目录 前言elasticsearch 聚合查询1. 桶聚合2. 度量聚合3. 嵌套聚合4. 指标聚合 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差,实在…

Nodejs 第六十八章(远程桌面)

远程桌面 远程桌面(Remote Desktop)是一种技术,允许用户通过网络远程连接到另一台计算机,并在本地计算机上控制远程计算机的操作。通过远程桌面,用户可以在不同地点的计算机之间共享屏幕、键盘和鼠标,就像…

购买 DDoS 高防 IP 防护哪家好?

DDoS 高防 IP 哪里买会比较好?在这场攻与守的游戏里,DDoS 高防 IP 是一种针对 DDoS 攻击的防护措施,通过将网站或应用的 IP 地址映射到高防 IP 上,实现对流量的清洗和过滤,从而有效抵御 DDoS 攻击。在选择 DDoS 高防 IP 服务提供…

应急学院物联网应急安全产教融合基地解决方案

第一章 背景 1.1物联网应急安全产教融合发展概况 物联网应急安全产教融合发展是当前社会发展的重要趋势。随着物联网技术的广泛应用,应急安全领域对人才的需求日益迫切。因此,产教融合成为培养高素质、专业化人才的关键途径。在这一背景下,…

嘉楠堪智 CanMV K230 的 CanMV-IDE 环境与 MicroPython 编程

嘉楠推出了 CanMV IDE 开发环境,可以使用 MicroPython 开发针对 CanMV K230 的各种程序,同时也提供了大量的例子程序,方便使用者学习。 嘉楠开发者社区,给出了详细的 CanMV K230 教程,可以借以快速上手。 目录 固件…

word中取消分页符或分段符前后的空格

在Word中,有时候,我们添加分页符后,从分页符后面的文字就全部掉到了下一页,那么如何避免呢? 选择word选项--高级,然后下滑到下面,将“取消分页符或分段符前后的空格”选中,如下图所…

IDEA上文件换行符、分隔符(Line Separator)LF,CR,CRLF错乱影响Git上传Github或Gitee代码

IDEA上文件换行符、分隔符(Line Separator)LF,CR,CRLF错乱影响Git上传Github或Gitee代码 指定目录 然后就可以上传了 OK 一定注意更改Line Separator的文件目录 如果是target目录下的文件,是不能修改为LF的,把target文件删除,再重载一次main文件,就…

手机空号过滤,提高工作效率

手机空号过滤在多个方面都具有重要的作用。 首先,它对于短信群发商和电话营销商来说至关重要。通过空号过滤,他们可以确保手机号码数据库的准确性和有效性。由于每天都有大量人群因各种原因更换手机号码,导致每个号段中的空号率和手机状态都…

详解进程控制

目录 一、进程创建 fork() 写时拷贝 fork的应用场景 二、进程退出 什么是进程退出码? 退出码的含义 进程退出方法 三、进程等待 进程等待的必要性 进程等待的方法 wait waitpid status 阻塞与非阻塞 四、进程替换 替换原理 替换函数 命名理解 简…

CMake使用

一、CMake 是什么 CMake 是一个跨平台的自动化构建系统,它使用配置文件 CMakeLists.txt 来管理软件构建过程。CMake 基于 Makefile 做了二次开发。 二、单个文件目录 # CMake 最低版本号要求 cmake_minimum_required(VERSION 3.16.3)# 工程名 project(CMakeSingle)…

Spring Boot整合Redisson的两种方式

项目场景 Spring Boot整合Redisson的两种方式,方式一直接使用yml配置,方式二创建RedissonConfig配置类。 前言 redisson和redis区别: Redis是一个开源的内存数据库,支持多种数据类型,如字符串、哈希、列表、集合和有序…

ZooKeeper 环境搭建详细教程之三(真集群)

ZooKeeper 搭建详细步骤之三(真集群) ZooKeeper 搭建详细步骤之二(伪集群模式) ZooKeeper 搭建详细步骤之一(单机模式) ZooKeeper 及相关概念简介 真集群搭建 搭建 ZooKeeper 真集群涉及多个步骤,包括准备环境、配置文件设置、启动服务以及验证集群状态。 以下是一个简…
最新文章