常用评价指标及方法(以NILM及SV为例)

news2024/11/17 11:22:19

1. NILM的评价指标

主要有 accuracy,precision,recal, F1-score, F1-micro, F1-macro

首先需要了解一下几个概念,TP (true positive), FP (false positive), TN (true negitive), FN (false negitive)。

  • TP:true positive。预测是正确的正样本
  • FP:false positive。预测是错误的正样本
  • TN:true negative。预测是正确的负样本
  • FP:false positive。预测是错误的负样本

假设存二分类模型使得模型在测试数据集上的结果如下表所示,横坐标为Ground Truth, 纵坐标为预测值:

1.1 准确率 - Accuracy

准确率是指,对于给定的测试数据集,分类器正确分类的样本书与总样本数之比,也就是预测正确的概率。也就是所有数据中,我们正确分类了多少?即:

1.2 精确度 Precision

精确度:以预测结果为判断依据,预测为正例的样本中预测正确的比例。预测为正例的结果分两种,要么实际是正例TP,要么实际是负例FP,则可用公式表示:

精确度还有一个名字,叫做“查准率”,我们关心的主要部分是正例,所以查准率就是相对正例的预测结果而言,正例预测的准确度。直白的意思就是模型预测为正例的样本中,其中真正的正例占预测为正例样本的比例,用此标准来评估预测正例的准确度

被我们的算法选为positive的数据中,有多少真的是positive的?

1.3 召回率 Recall

召回率:以实际样本为判断依据,实际为正例的样本中,被预测正确的正例占总实际正例样本的比例。实际为正例的样本中,要么在预测中被预测正确TP,要么在预测中预测错误FN,用公式表示:

召回率的另一个名字,叫做“查全率”,评估所有实际正例是否被预测出来的覆盖率占比多少。实际应该为Positive的数据中,多少被我们选为了Positive?

总结:预测时当然希望Precision和Recall都保持一个较高的水准,但事实上这两者在某些情况下是有矛盾的。比如在极端情况下,倘若只搜索出了一个结果,且是正确的,那么Precision就是100%,但是Recall就很低;而如果把所有结果都返回,那么比如Recall是100%,但是Precision就会很低。因此在不同的场合中需要自己判断希望Precision比较高或是Recall比较高,此时可以引出另一个评价指标 F1-Score(F-Measure)。

1.4 F1-score

F1分数(F1 Score)是统计学中用来衡量二分类模型精确度的一种指标,它同时兼顾了分类模型的精确率和召回率。F1分数可以看作是模型精确率和召回率的一种加权平均,它的最大值是1,最小值是0。

数学定义F1-Score又称为平衡F分数(BalancedScore),它被定义为精确率和召回率的调和平均数。F-score 就是precision 和 recall的 harmonic mean

总结:直觉上来说TP越大越好,但是这里的大肯定是一个相对的概念,而F-score 就是分别从两个角度,主观(Predicted)和客观(Actual)上去综合的分析TP够不够大。这也就是平常看到的结论 F-score的值 只有在 Precision 和 Recall 都大的时候 才会大。

1.5 宏平均 Macro-F1 、微平均 Micro-F1

在一个多标签分类任务中,可以对每个“类”计算F1,显然需要把所有类的F1合并起来考虑。这里有两种合并方式:

(1)第一种计算出所有类别总的Precision和Recall,然后计算F1。这种方式被称为Micro-F1微平均

(2)第二种方式是计算出每一个类的Precison和Recall后计算F1,最后将F1平均。这种方式叫做Macro-F1宏平均。


:微平均 Micro-F1 主要应用在样本数据分布均衡的数据集上,而宏平均Macro-F1 主要应用在样本数据分布不均衡的数据集上,因为它在分类结果中更能照顾小规模样本的权重。

1.6 混淆矩阵(Confusion Matrix)

在机器学习领域,混淆矩阵又称为可能性表格或错误矩阵。它是一种特定的矩阵,用来呈现算法性能的可视化效果,通常是监督学习(非监督学习通常用匹配矩阵:matching matrix)。其每一列代表预测值,每一行代表的是实际的类别。这个名字来源于它可以非常容易的表明多个类别是否有混淆(也就是一个class被预测成另一个class)。

一个二分类(正和反)问题的混淆矩阵如下图所示:

三分类混淆矩阵:

所有正确的预测结果都在对角线上,所以从混淆矩阵中可以很方便直观的看出哪里有错误,因为他们呈现在对角线外面

1.7 ROC 曲线

接受者操作特征曲线(Reciver Operating Characteristic Curve,ROC),用于描述二分类系统性能(分类器阈值是变化的),反应敏感性和特异性连续变化的综合指标,ROC曲线上的点反应对同一信号刺激的感受性。

用不同的阀值,统计出每组不同阀值下的精确率和召回率:

  • x轴为假阳性率(FPR):在所有的负样本中,分类器预测错误的比例(Specificity) 

  • y轴为真阳性率(TPR):在所有的正样本中,分类器预测正确的比例Sensitivity(等于Recall)

一个典型的 ROC 曲线如下:

为了更好地理解ROC曲线,我们使用具体的实例来说明:

如在医学诊断中,判断有病的样本。那么尽量把有病的揪出来是主要任务,也就是指标TPR,要越高越好。而把没病的样本误诊为有病的,也就是指标FPR,要越低越好。

不难发现,这两个指标之间是相互制约的。如果某个医生对于有病的症状比较敏感,稍微的小症状都判断为有病,那么他的tpr指标应该会很高,但是fpr指标也就相应地变高。最极端的情况下,他把所有的样本都看做有病,那么tpr达到1,fpr指标也为1。

ROC曲线优势就是,当正负样本的分布发生变化时,其形状能够基本保持不变,因此其面积AUC值也适用于不平衡样本。

1.8 AUC(Area Under the Curve,曲线下面积)

AUC是一种模型分类指标,且仅仅是二分类模型的评价指标。

AUC定义:

AUC值为ROC曲线所覆盖的区域面积,显然,AUC越大,分类器分类效果越好。

AUC的物理意义

AUC的物理意义正样本的预测结果大于负样本的预测结果的概率。所以AUC反应的是分类器对样本的排序能力。

另外值得注意的是,AUC对样本类别是否均衡并不敏感,这也是不均衡样本通常用AUC评价分类器性能的一个原因。

2. SV的评价指标

说话人确认(Speaker Verification)的测试阶段需要判断两句话是否来自同一个说话人,或者某句话是否来自某个特定的人,是个二分类问题。

定义:
错误接受率(False Acceptance Rate,FAR):不该接受的样本(label=0)中被接受(prediction=1)概率

错误拒绝率(False Rejection Rate,FRR):不该拒绝的样本(label=1)中被拒绝(prediction=0)的概率

2.1 等错误概率EER(Equal Error Rate)

当两个错误概率相等的时候,即 F A R = F R R 时,

EER越小越好。EER认为虚警和漏警对系统影响的代价是相等的,也不关心实际中正例对和负例对的先验概率。

2.2 最小检测代价函数minDCF(Minimum Detection Cost Function)

其中C_{fa} 为错误接受样本(虚警)的风险系数,C_{fr} 为错误拒绝样本(漏警)的风险系数;p_{target} 和1-p_{target} 为正例对和负例对的先验概率,一般来说实际中碰到的绝大部分都是负例对,因此p_{target} 较小,一般设置为0.01或者0.001。minDCF越小越好。
minDCF考虑了先验概率和不同代价,比 EER 更合理。
在2008年的NIST说话人确认评测中,取 C_{fr} =10, C_{fa}=1,PT=0.01,PI=0.99;在2010年的NIST评测中,取 C_{fr} =1, C_{fa} =1,PT=0.001,PI=0.999。可见,识别系统要能够应付大量的冒认者,且对错误拒绝更敏感。

2.3 RTF(real_time_factor实时率,在线识别指标)

RTF(real time factor)表示如下:(只找到了ASR的RTF计算方法)

【意义】平均1秒时长音频ASR算法需要多少秒处理,小于1才能达到实时效果。越小越好,正常0.2-0.3

即:


原文链接:https://blog.csdn.net/qq_44901949/article/details/124708810

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux应用开发基础知识——Makefile 的使用(二)

前言: 在 Linux 中使用 make 命令来编译程序,特别是大程序;而 make 命令所执 行的动作依赖于 Makefile 文件。最简单的 Makefile 文件: hello: hello.c 、gcc -o hello hello.c 、clean:、 rm -f hello 将上述 4 行存为 Makefile …

通过关键词合并2张excel表格——Python代码实现

问题描述 2个excel表格中都包含了一个共同的关键字【单品编码】,如何将2个表通过该关键字合并为一张表格。使用Python代码完成该任务。 1.数据说明 附件1中的数据excel格式 销售日期,扫码销售时间,单品编码,销量(千克),销售单价(元/千克),销售类型,是否打折销售…

访问控制列表

目录 ACL ACL原理 ACL包过滤方式 ACL通用命令 查看ACL表命令 删除整张表命令 接口配置ACL ACL分类 标准ACL 标准ACL的动作与条件 通配符掩码 扩展ACL 扩展ACL的动作与条件 命名ACL 前言 书写方式 ACL 含义:访问控制列表,其是一种包过滤…

element 弹窗浏览器后退-遮照层还存在问题 以及跟vue keep-alive冲突

问题:element 弹窗浏览器后退-遮照层还存在问题 查询官网可以设置 modal-append-to-body“false” 可以全局设置 ElementUI.Dialog.props.modalAppendToBody.default false 后续 基本到这能解决问题,不过本项目比较特殊,使用了 keep-alive…

你真的了解static吗?

目录 一.static1.概念2.存在形式3.访问形式注意4.static成员变量的初始化4.1就地初始化4.2使用代码块初始化 5.关于main 二.代码块概念1.普通代码块2.构造代码块3.静态代码块注意事项①加载形式②加载顺序 一.static 1.概念 在Java中,被static修饰的成员&#xff0…

Visual Studio 2017附加依赖项

在读韩国人尹圣雨的《TCP/IP网络编程》,在书中教我如何在Visual Studio 2008中设置附加依赖项,但是我使用的是Visual Studio 2017,所以我写下这篇文章学习如何在Visual Studio 2017附加依赖项。 在项目这里选择属性。 选择输入这一项,然后点…

如何通过货架电子标签PTL灯光指引拣选优化仓库管理

物流仓储行业的不断发展和智能化技术的应用,仓库管理的效率和精度要求也日益提高。在这样的背景下,PTL亮灯拣选系统作为一种智能化设备,采用分布式管理结构,为仓库管理带来了新的可能性。 PTL亮灯拣选系统采用智能计算机作为主控设…

低代码工具的常见用例与受众市场

目录 一、低代码工具的常见用例是什么? 1.业务流程管理(BPM) 2.自定义应用程序开发 3.数据管理和分析 4.移动应用程序开发 二、低代码受众和市场 1.制造商 2.个人开发者/自由职业者 3.代理商 4.小型企业和初创企业 5.中型企业 6.营销团队 7.软…

Voice Control for ChatGPT简单高效的与ChatGPT进行交流学习。

快捷又不失灵活性 日常生活中,我们与亲人朋友沟通交流一般都是喜欢语音的形式来完成的,毕竟相对于文字来说语音就不会显的那么的苍白无力,同时最大的好处就是能解放我们的双手吧,能更快实现两者间的对话,沟通便更高效…

基于Java Web的在线教学质量评价系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

【数据结构】树与二叉树(五):二叉树的顺序存储(初始化,插入结点,获取父节点、左右子节点等)

文章目录 5.1 树的基本概念5.1.1 树的定义5.1.2 森林的定义5.1.3 树的术语5.1.4 树的表示 5.2 二叉树5.2.1 二叉树1. 定义2. 特点3. 性质引理5.1:二叉树中层数为i的结点至多有 2 i 2^i 2i个,其中 i ≥ 0 i \geq 0 i≥0。引理5.2:高度为k的二叉…

免费好用的网页采集工具软件推荐

在众多各具特色的采集器软件中,真正好用的采集器软件有哪些? 自己一个个去查找和尝试无疑会耗费大量的时间和精力。 因此,在深入体验大多数采集器后,给大家推荐几款优秀且好用的免费网页采集器软件。 本文将对这几款采集器进行…

【机器学习】梯度下降预测波士顿房价

文章目录 前言一、数据集介绍二、预测房价代码1.引入库2.数据3.梯度下降 总结 前言 梯度下降算法学习。 一、数据集介绍 波士顿房价数据集:波士顿房价数据集,用于线性回归预测 二、预测房价代码 1.引入库 from sklearn.linear_model import Linear…

如何处理 java.lang.NoClassDefFoundError

1. 问题背景 系统异常提示java.lang.NoClassDefFoundError: ch/qos/logback/classic/spi/ThrowableProxy 2.问题分析 了解NoClassDefFoundError含义 在开始解决这个问题之前,我们需要先了解一下java.lang.NoClassDefFoundError错误的含义。这个错误通常表示在运行…

借助 DevChat AI 之力,成就我之全栈梦想

何为 DevChat ? DevChat 是集好多种 AI 大模型的智能编程工具,可以大大增加我们上班摸鱼的时间。 整合了如 ChatGPT、Codex等热门 AI 模型支持自然语言编程、代码生成与编写、代码补全等功能因其集成热门 AI 智能,相当于站在了巨人的肩膀上&#xff0c…

琛蓝健康明星产品ClamBP™蛤蜊肽,调节血压的针对性方案

琛蓝健康明星产品ClamBP™蛤蜊肽,调节血压的针对性方案 高血压是现今社会最紧迫的公共卫生挑战之一,影响着全球约20%的成人人口。据《中国心血管健康与疾病报告2019》显示,中国高血压患者达2.45亿。长期高血压可引起心脏病、中风、肾功能减退…

Kibana Dashboard饼图展示keyword子字符串去重统计

日志内容 log.info("请求开始 uri: {} header RequestId:{}", request.getRequestURI(), reqId, request.getHeader("request_id"));操作步骤 进入Dashboard菜单 点击Create Dashboard按钮 点击Create Panel按钮 选择Aggregation based 然后选择Pie饼图 …

C#在.NET Windows窗体应用中使用LINQtoSQL

目录 一、新建Windows窗体应用并添加LINQtoSQL类 二、错误信息CS0234 三、添加扩展包让Windows窗体应用支持LINQtoSQL类 默认安装的背景下,新建的Windows窗体应用是不支持LINQtoSQL类的。现象是资源管理器里的依赖项中默认的安装不能自动生成支持system.data.lin…

触摸屏通过modbus转profinet网关连接PLC与变频器485modbus通讯案例

通过兴达易控modbus转profinet网关(XD-MDPN100)的桥接,数据可以以高速、可靠的方式从触摸屏传递到PLC,同时能够实现PLC对变频器的监控和控制。这四台变频器通过485modbus协议与PLC通讯,使得系统能够实现对变频器的高效…

AI系统源码ChatGPT网站源码+ai绘画系统/支持GPT4.0/支持Midjourney局部编辑重绘

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…