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并不代表各类都是均匀分布的;第二种使用加权的计算方式正是微平均的本质。
最新文章
- Spring IOC容器创建对象的方式
- json.stringfy()和json.parse()
- 将对象的所有属性名放到一个数组中 || 获得对象的所有属性名 || return;不具有原子性 || 怎样自己制作异常|| 判断对象有没有某个属性 || 当传递的参数比需要的参数少的时候,没有的值会被赋予undefined || 获得函数实际传递的参数 || 怎么用函数处理一个对象 || 用一个名字空间定义一个模块所有的函数 || 给一个对象添加方法
- asp.net中打印指定控件内容
- 地图坐标转换 -- 火星坐标与GPS坐标
- 《Java程序设计》第八周学习总结
- Memcached常用命令及使用说明(转)
- Flash AIR 保存与读取
- 《刺杀金正恩》1080p全高清无水印,附中文字幕 bt种子下载,附字母(百度网盘/360云盘)
- Dynamics CRM 2013 体验
- HDU X mod f(x)(题解注释)
- 初探OpenCL之Mac OS上的hello world示例
- Taskctl安装及配置Kettle插件
- RabbitMQ系列(六)你不知道的RabbitMQ集群架构全解
- CentOS 安装最新版本 Git
- Redis初探-Redis安装
- NGUI图集字体
- LOJ #2473. 「九省联考 2018」秘密袭击
- python线程join
- ionic+cordova开发!
热门文章
- nginx实现限速
- [C++]Qt程式异常崩溃处理技巧(Win)
- CTF线下防御战 — 让你的靶机变成“铜墙铁壁”
- 【iCore4 双核心板_ARM】例程三十二:UART_IAP_ARM实验——更新升级STM32
- /usr/bin/uwsgi --http :8888 --wsgi-file wsgi.py --master --processes 4 --threads 2
- golang 中的指针
- 手机配置代理报错invalid host header
- iOS开发之--在UIWindow上展示/移除一个View
- kotlin 语法跟 java 的不同
- 【问题】Can't load AMD 64-bit .dll on a IA 32-bit platform