Micro和Macro性能学习【转载】
1.计算方式不同
A macro-average will compute the metric independently for each class and then take the average (hence treating all classes equally)
宏平均会对每类独立地计算指标(精度、召回率、F1值),并且取平均,每类都会平等计算。
a micro-average will aggregate the contributions of all classes to compute the average metric.
微平均会统计所有类的分布来计算平均指标。
In a multi-class classification setup, micro-average is preferable if you suspect there might be class imbalance (i.e you may have many more examples of one class than of other classes).
在多分类中,如果你怀疑有类不均衡存在,使用微平均更好。
2.例子
假设对于精度计算,,假设现有1对多分类任务,共有4类:
- Class A: 1 TP and 1 FP
- Class B: 10 TP and 90 FP
- Class C: 1 TP and 1 FP
- Class D: 1 TP and 1 FP
以上为测试用的数据,可以根据上式计算得到:
对于以上计算结果,由于A、C、D三类的精度是0.5,所以宏平均看起来得到了一个不错的精度为0.4,但是具有误导性,因为B中有一大部分并没有进行正确的分类;
在本例中,B类数据占了94.3%,很明显是存在类不平衡的,微平均能更好的反应结果。
3.计算方法
3.1在计算中,可以先计算类平均,然后是宏平均,之后给出总的标准差:
3.2另一种是使用加权计算的方法,权重是本类样本总数所占的比例:
3.3从以上可以看出,0.173标准差,意味着精度为0.4并不代表各类都是均匀分布的;第二种使用加权的计算方式正是微平均的本质。
Micro和Macro性能学习【转载】的更多相关文章
- F1 score,micro F1score,macro F1score 的定义
F1 score,micro F1score,macro F1score 的定义 2018年09月28日 19:30:08 wanglei_1996 阅读数 976 本篇博客可能会继续更新 最近在 ...
- Java多线程学习(转载)
Java多线程学习(转载) 时间:2015-03-14 13:53:14 阅读:137413 评论:4 收藏:3 [点我收藏+] 转载 :http://blog ...
- Windows Services 学习(转载)
转载:http://blog.csdn.net/fakine/article/details/42107571 一.学习点滴 1.本机服务查看:services.msc /s2.服务手动安装(使用sc ...
- 机器学习--Micro Average,Macro Average, Weighted Average
根据前面几篇文章我们可以知道,当我们为模型泛化性能选择评估指标时,要根据问题本身以及数据集等因素来做选择.本篇博客主要是解释Micro Average,Macro Average,Weighted A ...
- GJM : FlatBuffers 与 protobuf 性能比较 [转载 ]
原帖地址:http://blog.csdn.net/menggucaoyuan/article/details/34409433 原作者:企鹅 menggucaoyuan 未经原作者同意不允许转载 ...
- Graphic32中TBitmap32.TextOut性能分析[转载]
转载:http://blog.csdn.net/avan_lau/article/details/6958497 最近在分析软件中画线效率问题,发现在画一些标志性符号的方法,存在瓶颈,占用较大的时间. ...
- JVM的相关知识整理和学习--(转载)
JVM是虚拟机,也是一种规范,他遵循着冯·诺依曼体系结构的设计原理.冯·诺依曼体系结构中,指出计算机处理的数据和指令都是二进制数,采用存储程序方式不加区分的存储在同一个存储器里,并且顺序执行,指令由操 ...
- Tomcat性能优化(转载)
出处:微信订阅号GitChat精品课程 — Tomcat性能优化 Tomcat 简单介绍 Sun 公司创建了第一个 Servlet 容器,即 Java Web Server,但 JWS 只是为了演示 ...
- 性能学习随笔(1)--负载均衡之f5负载均衡
负载均衡设计涉及软件负载和硬件负载,下文转自CSDN中一篇文章涉及f5硬负载知识 ----转载:https://blog.csdn.net/tvk872/article/details/8063489 ...
随机推荐
- k8s namespace/volume
https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/ 只挑个人感觉使用较多/比较重要的点来说 ...
- logstash之filter处理中括号包围的内容
如题,logstash之filter处理中括号包围的内容: $grep -v "#" config/logstash-nlp.yml input { kafka { bootstr ...
- 解决远程连接mysql很慢的方法
开发某应用系统连接公司的测试服务器的mysql数据库连接打开的很慢,但是连接本地的mysql数据库很快,刚开始认为可能是网络连接问题导致的,在进行 ping和route后发现网络通信都是正常的,而且在 ...
- [转]java List和数组相互转换方法
原文地址:https://blog.csdn.net/zjx2016/article/details/78273192 前言在java项目中数组和list集合(这里指ArrayList)经常需要互相转 ...
- 【规范】前端编码规范——html 规范
文档类型 推荐使用 html5 的文档类型申明: <!DOCTYPE html> 语言属性 根据 html5 规范: 强烈建议为 html 根元素指定 lang 属性,从而为文档设置正确的 ...
- linux下python3调用c代码或者python3调用c++代码
前几篇的blog都是为了这个实验做基础,先说 原因是python调用数据库150w条数据22s,然后处理数据,其实就2个简单的for循环,65s 需求: 1. python调用c++函数 2. c++ ...
- 项目中phpexcel的基本用法
前提:要下载PHPEXCEL库文件 如:phpexcel官方下载 ,本人使用下载 情形一:对于将数据写入EXCEL表中的用法 header("content-type:text/htm ...
- SpringBoot Mybatis整合(注解版),SpringBoot集成Mybatis(注解版)
SpringBoot Mybatis整合(注解版),SpringBoot集成Mybatis(注解版) ================================ ©Copyright 蕃薯耀 2 ...
- 如何建立nfs网络文件系统
建立网络文件系统的前提:windows与linux虚拟机及开发板三者之间能够互相ping 通. 三者互ping通IP设置举例: 1. 首先,关闭windows的防火墙,然后通过:ufw disab ...
- python str byte 转换
# bytes object b = b"example" # str object s = "example" # str to bytes bytes(s, ...