#机器学习 Micro

您所在的位置:网站首页 宏观计算公式 #机器学习 Micro

#机器学习 Micro

2024-07-08 19:20:33| 来源: 网络整理| 查看: 265

micro-F1和macro-F1详解 摘要micro-F1:macro-F1:weighted-F1调参

  2022.04.06 修改了二分类F1的表述错误,增加了macro和micro的权重倾向

  2021.12.21 修改了图像,并将部分公式由图片转换为公式,修改了部分表述方式

摘要

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

  一般来说,对于二分类问题我们通常只计算正类的样本的F1-score,即将正类的F1当成整体F1,而不会去分别计算正类和负类。当然如果实验要求也可以分别计算两类的F1之后再使用micro或macro的方式得到整体的F1。我们多在多分类问题中才考虑计算不同类别的样本F1。

  这里先简要介绍一下二分类的F1计算方法:

  假设有如下的二分类结果: 在这里插入图片描述   根据上述结果我们可以得到一下结果:     P r e c i s i o n = a a + c                    R e c a l l = a a + b \ \ \ Precision= \frac{a}{a+c} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Recall= \frac{a}{a+b}    Precision=a+ca​                  Recall=a+ba​ 二 分 类 F 1 − s c o r e : F 1 = 2 1 R e c a l l + 1 P r e c i s i o n = 2 R e c a l l × P r e c i s i o n R e c a l l + P r e c i s i o n 二分类F1-score:F1= \frac{2}{\frac{1}{Recall}+\frac{1}{Precision}}= 2\frac{Recall×Precision}{Recall+Precision} 二分类F1−score:F1=Recall1​+Precision1​2​=2Recall+PrecisionRecall×Precision​

  在多分类问题中,如果要计算模型的F1-score,则有两种计算方式,分别为micro-F1和macro-F1。下面分别介绍两种计算方式的不同。

micro-F1:

取值范围:(0, 1); 权重倾向:每一个样本的权重都相同; 适用环境:多分类不平衡,若数据极度不平衡会影响结果; 计算方式: 计 算 总 的 R e c a l l m = T P 1 + T P 2 + T P 3 T P 1 + T P 2 + T P 3 + F N 1 + F N 2 + F N 3 计算总的Recall_m= \frac{TP_1+TP_2+TP_3}{TP_1+TP_2+TP_3+FN_1+FN_2+FN_3} 计算总的Recallm​=TP1​+TP2​+TP3​+FN1​+FN2​+FN3​TP1​+TP2​+TP3​​ 计 算 总 的 P r e c i s i o n m = T P 1 + T P 2 + T P 3 T P 1 + T P 2 + T P 3 + F P 1 + F P 2 + F P 3 计算总的Precision_m= \frac{TP_1+TP_2+TP_3}{TP_1+TP_2+TP_3+FP_1+FP_2+FP_3} 计算总的Precisionm​=TP1​+TP2​+TP3​+FP1​+FP2​+FP3​TP1​+TP2​+TP3​​ 计 算 总 的 m i c r o − F 1 = 2 R e c a l l m × P r e c i s i o n m R e c a l l m + P r e c i s i o n m 计算总的micro-F1= 2\frac{Recall_m×Precision_m}{Recall_m+Precision_m} 计算总的micro−F1=2Recallm​+Precisionm​Recallm​×Precisionm​​   TPi 是指第 i 类的 True Positive   正类判定为正类;   FPi 是指第 i 类的 False Positive  负类判定为正类;   FNi 是指第 i 类的 FalseNegative  正类判定为负类;   TNi 是指第 i 类的 True Negative  负类判定为负类。

  假设现在有一下的三分类结果: 在这里插入图片描述   由此表我们可以得出: 对 第 1 类 : F P 1 = d + g ; T P 1 = a ; F N 1 = b + c ; T N 1 = e + f + h + i ; 对第1类:FP_1=d+g;TP_1=a;FN_1=b+c;TN_1=e+f+h+i; 对第1类:FP1​=d+g;TP1​=a;FN1​=b+c;TN1​=e+f+h+i; 对 第 2 类 : F P 2 = b + h ; T P 2 = e ; F N 2 = d + f ; T N 2 = a + c + g + i ; 对第2类:FP_2=b+h;TP_2=e;FN_2=d+f; TN_2=a+c+g+i; 对第2类:FP2​=b+h;TP2​=e;FN2​=d+f;TN2​=a+c+g+i; 对 第 3 类 : F P 3 = c + f ; T P 3 = i ; F N 3 = g + h ; T N 3 = a + b + d + e ; 对第3类:FP_3=c+f; TP_3=i; FN_3=g+h;TN_3=a+b+d+e; 对第3类:FP3​=c+f;TP3​=i;FN3​=g+h;TN3​=a+b+d+e;

  对micro-F1来说,mirco的计算方式使将recall和precision合起来算,所以:   对于micro-Recall: m i c r o − R e c a l l = T P 1 + T P 2 + T P 3 T P 1 + T P 2 + T P 3 + F N 1 + F N 2 + F N 3 micro-Recall=\frac{TP_1+TP_2+TP_3}{TP_1+TP_2+TP_3+FN_1+FN_2+FN_3} micro−Recall=TP1​+TP2​+TP3​+FN1​+FN2​+FN3​TP1​+TP2​+TP3​​  即三个类别的TP和FN相加为分母,TP为分子。由上式分析可知, T P 1 + T P 2 + T P 3 = a + e + i TP_1+TP_2+TP_3 =a+e+i TP1​+TP2​+TP3​=a+e+i F N 1 + F N 2 + F N 3 = b + c + d + f + g + h FN_1+FN_2+FN_3 =b+c+d+f+g+h FN1​+FN2​+FN3​=b+c+d+f+g+h  (即除了TP之外的所有格),所以得到 R e c a l l m = a + e + i a + e + i + b + c + d + f + g + h Recall_m=\frac{a+e+i}{a+e+i+b+c+d+f+g+h} Recallm​=a+e+i+b+c+d+f+g+ha+e+i​

  对于micro-Precision: m i c r o − P r e c i s i o n = T P 1 + T P 2 + T P 3 T P 1 + T P 2 + T P 3 + F P 1 + F P 2 + F P 3 micro-Precision=\frac{TP_1+TP_2+TP_3}{TP_1+TP_2+TP_3+FP_1+FP_2+FP_3} micro−Precision=TP1​+TP2​+TP3​+FP1​+FP2​+FP3​TP1​+TP2​+TP3​​  同理可得, T P 1 + T P 2 + T P 3 = a + e + i TP_1+TP_2+TP_3 =a+e+i TP1​+TP2​+TP3​=a+e+i F P 1 + F P 2 + F P 3 = d + g + b + h + c + f FP_1+FP_2+FP_3 =d+g+b+h+c+f FP1​+FP2​+FP3​=d+g+b+h+c+f  (即除了TP之外的所有格),得到 P r e c i s i o n m = a + e + i a + e + i + d + g + b + h + c + f = R e c a l l m Precision_m=\frac{a+e+i}{a+e+i+d+g+b+h+c+f}=Recall_m Precisionm​=a+e+i+d+g+b+h+c+fa+e+i​=Recallm​

  然后,根据micro F1-score的计算方式可得: m i c r o − F 1 = 2 R e c a l l m × P r e c i s i o n m R e c a l l m + P r e c i s i o n m = R e c a l l m = P r e c i s i o n m micro-F1= 2\frac{Recall_m×Precision_m}{Recall_m+Precision_m}=Recall_m=Precision_m micro−F1=2Recallm​+Precisionm​Recallm​×Precisionm​​=Recallm​=Precisionm​   而且,对于模型准确性Accuracy,定义为正确分类的样本在所有样本中的比例。所以准确性的公式 A c c = a + e + i a + b + c + d + e + f + g + h + i = m i c r o − F 1 = R e c a l l m = P r e c i s i o n m Acc= \frac{a+e+i}{a+b+c+d+e+f+g+h+i}=micro-F1=Recall_m=Precision_m Acc=a+b+c+d+e+f+g+h+ia+e+i​=micro−F1=Recallm​=Precisionm​   据此我们可以得出结论:若micro-F1=0.5,则模型准确率Acc=0.5,Precision和Recall均为0.5,但是!我们不能得出模型基本是靠猜的结论,因为若是三分类结果如下: 在这里插入图片描述 A c c = a + e + i a + b + c + d + e + f + g + h + i = m i c r o − F 1 = R e c a l l m = P r e c i s i o n m = 0.5 Acc= \frac{a+e+i}{a+b+c+d+e+f+g+h+i}=micro-F1=Recall_m=Precision_m=0.5 Acc=a+b+c+d+e+f+g+h+ia+e+i​=micro−F1=Recallm​=Precisionm​=0.5

macro-F1:

取值范围:(0, 1); 取值范围:每一类别的权重都相同; 适用环境:多分类问题,不受数据不平衡影响,容易受到识别性高(高recall、高precision)的类别影响; 计算方法:(以三分类来计算) ( 1 ) .   计 算 每 个 类 别 的 F 1 − s c o r e i = 2 R e c a l l i × P r e c i s i o n i R e c a l l i + P r e c i s i o n i (1).\ 计算每个类别的F1-score_i=2\frac{Recall_i×Precision_i}{Recall_i+Precision_i} (1). 计算每个类别的F1−scorei​=2Recalli​+Precisioni​Recalli​×Precisioni​​ ( 2 ) .   计 算 m a c r o − F 1 = F 1 − s c o r e 1 + F 1 − s c o r e 2 + F 1 − s c o r e 3 3 (2).\ 计算macro-F1=\frac{F1-score_1+F1-score_2+F1-score_3}{3} (2). 计算macro−F1=3F1−score1​+F1−score2​+F1−score3​​

  其实macro-F1有两种计算方式,

  1、先求macro-Recall和macro-Pecision,之后由这两个和求macro-F1;   2、对三个类别的F1-score直接求平均(即上述计算方法)。

  在sklearn的包中,使用的是第二种方式。两种方式的使用争议一直存在,不过在“Training algorithms for linear text classifiers( Lewis, David D., et al. “Training algorithms for linear text classifiers.” SIGIR. Vol. 96. 1996.)”中,作者指出,macro-F1是所有类中F1-score的平均值,即第二种方式才是macro-F1的计算方式,因此我们使用第二种计算方式进行说明。

  我们对两种macro的方法进行简单分析,第一种方式对错误的分布不太敏感“详见论文(Opitz, Juri, and Sebastian Burst. “Macro F1 and Macro F1.” arXiv preprint arXiv:1911.03347 (2019))”,这一点有点像micro-F1;而第二种方法则被上述论文作者推荐。

  同样,我们对每一类的指标都进行分析: 对 第 1 类 : F P 1 = d + g ; T P 1 = a ; F N 1 = b + c ; T N 1 = e + f + h + i ; 对第1类:FP_1=d+g;TP_1=a;FN_1=b+c;TN_1=e+f+h+i; 对第1类:FP1​=d+g;TP1​=a;FN1​=b+c;TN1​=e+f+h+i; 对 第 2 类 : F P 2 = b + h ; T P 2 = e ; F N 2 = d + f ; T N 2 = a + c + g + i ; 对第2类:FP_2=b+h;TP_2=e;FN_2=d+f; TN_2=a+c+g+i; 对第2类:FP2​=b+h;TP2​=e;FN2​=d+f;TN2​=a+c+g+i; 对 第 3 类 : F P 3 = c + f ; T P 3 = i ; F N 3 = g + h ; T N 3 = a + b + d + e ; 对第3类:FP_3=c+f; TP_3=i; FN_3=g+h;TN_3=a+b+d+e; 对第3类:FP3​=c+f;TP3​=i;FN3​=g+h;TN3​=a+b+d+e; 对 第 1 类 : R e c a l l 1 = T P 1 T P 1 + F N 1 , P r e c i s i o n 1 = T P 1 T P 1 + F P 1 , F 1 − s c o r e 1 = 2 T P 1 2 T P 1 + F P 1 + F N 1 对第1类:Recall_1=\frac{TP_1}{TP_1+FN_1},Precision_1=\frac{TP_1}{TP_1+FP_1},F1-score_1=\frac{2TP_1}{2TP_1+FP_1+FN_1} 对第1类:Recall1​=TP1​+FN1​TP1​​,Precision1​=TP1​+FP1​TP1​​,F1−score1​=2TP1​+FP1​+FN1​2TP1​​ 对 第 2 类 : R e c a l l 2 = T P 2 T P 2 + F N 2 , P r e c i s i o n 2 = T P 2 T P 2 + F P 2 , F 1 − s c o r e 2 = 2 T P 2 2 T P 2 + F P 2 + F N 2 对第2类:Recall_2=\frac{TP_2}{TP_2+FN_2},Precision_2=\frac{TP_2}{TP_2+FP_2},F1-score_2=\frac{2TP_2}{2TP_2+FP_2+FN_2} 对第2类:Recall2​=TP2​+FN2​TP2​​,Precision2​=TP2​+FP2​TP2​​,F1−score2​=2TP2​+FP2​+FN2​2TP2​​ 对 第 3 类 : R e c a l l 3 1 = T P 3 T P 3 + F N 3 , P r e c i s i o n 3 = T P 3 T P 3 + F P 3 , F 1 − s c o r e 3 = 2 T P 3 2 T P 3 + F P 3 + F N 3 对第3类:Recall_31=\frac{TP_3}{TP_3+FN_3},Precision_3=\frac{TP_3}{TP_3+FP_3},F1-score_3=\frac{2TP_3}{2TP_3+FP_3+FN_3} 对第3类:Recall3​1=TP3​+FN3​TP3​​,Precision3​=TP3​+FP3​TP3​​,F1−score3​=2TP3​+FP3​+FN3​2TP3​​   将上述的值带入macro-F1中,得到: m a c r o − F 1 = F 1 − s c o r e 1 + F 1 − s c o r e 2 + F 1 − s c o r e 3 3 macro-F1=\frac{F1-score_1+F1-score_2+F1-score_3}{3} macro−F1=3F1−score1​+F1−score2​+F1−score3​​                              = 2 T P 1 2 T P 1 + F P 1 + F N 1 + 2 T P 2 2 T P 2 + F P 2 + F N 2 + 2 T P 3 2 T P 3 + F P 3 + F N 3 3 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\frac{\frac{2TP_1}{2TP_1+FP_1+FN_1}+\frac{2TP_2}{2TP_2+FP_2+FN_2}+\frac{2TP_3}{2TP_3+FP_3+FN_3}}{3}                             =32TP1​+FP1​+FN1​2TP1​​+2TP2​+FP2​+FN2​2TP2​​+2TP3​+FP3​+FN3​2TP3​​​              = 2 a 2 a + b + c + d + g + 2 e 2 e + b + d + f + h + 2 i 2 i + c + f + g + h 3 \ \ \ \ \ \ \ \ \ \ \ \ =\frac{\frac{2a}{2a+b+c+d+g}+\frac{2e}{2e+b+d+f+h}+\frac{2i}{2i+c+f+g+h}}{3}             =32a+b+c+d+g2a​+2e+b+d+f+h2e​+2i+c+f+g+h2i​​   上式即为macro-F1的公式(算到这里我就没有继续化简了感觉没东西)

  若使该值=0.5,也得不到有用的结论。

weighted-F1

  除了micro-F1和macro-F1,还有weighted-F1,是一个将F1-score乘以该类的比例之后相加的结果,也可以看做是macro-F1的变体吧。例如:在这里插入图片描述

  对上述表格,我们可得出每一类的precision、recall和F1-score:

在这里插入图片描述   所以,计算weighted-F1: w e i g h t e d − F 1 = 6 × 42.10 % + 10 × 30.80 % + 9 × 66.70 % 4 + 6 + 3 + 1 + 2 + 0 + 1 + 2 + 6 = 46.40 % weighted-F1=\frac{6×42.10\%+10×30.80\%+9×66.70\%}{4+6+3+1+2+0+1+2+6}=46.40\% weighted−F1=4+6+3+1+2+0+1+2+66×42.10%+10×30.80%+9×66.70%​=46.40%

  同样,我们也可以算weighted-Precision和weighted-Recall: w e i g h t e d − P r e c i s i o n = 6 × 30.80 % + 10 × 66.70 % + 9 × 66.70 % 25 = 58.10 % weighted-Precision=\frac{6×30.80\%+10×66.70\%+9×66.70\%}{25}=58.10\% weighted−Precision=256×30.80%+10×66.70%+9×66.70%​=58.10% w e i g h t e d − R e c a l l = 6 × 66.70 % + 10 × 20.00 % + 9 × 66.70 % 25 = 48.00 % weighted-Recall=\frac{6×66.70\%+10×20.00\%+9×66.70\%}{25}=48.00\% weighted−Recall=256×66.70%+10×20.00%+9×66.70%​=48.00%

  其实从上面我们也可以看出来, w e i g h t e d − F 1 ≠ 2 w e i g h t e d − P r e c i s i o n × w e i g h t e d − R e c a l l w e i g h t e d − P r e c i s i o n + w e i g h t e d − R e c a l l ≈ 52.57 % weighted-F1≠2\frac{weighted-Precision×weighted-Recall}{weighted-Precision+weighted-Recall}≈52.57\% weighted−F1​=2weighted−Precision+weighted−Recallweighted−Precision×weighted−Recall​≈52.57%   同理,参考macro的两种计算方式,一般以macro的计算方法为结果。

  weighted-F1和macro-F1的区别在于:macro-F1对每一类都赋予了相同的权重,而weighted-F1则根据每一类的比例分别赋予不同的权重。

调参

  关于scoring的使用:

  进行网格调参时,构建GridSearchCV,一般二分类的评分标准为roc_auc,而多分类并不提供roc曲线面积的评分方式,所以在多分类时,我们可以用

grid_search = GridSearchCV(lg, n_jobs=-1, scoring='f1_weighted', param_grid=param_dist, cv=10, verbose=5)

  等评分方式来进行调参,不同的评分方式对结果都会有影响。   还有更多的评分方式可以运行这两行代码获得:

import sklearn.metrics as sm print(sorted(sm.SCORERS.keys()))

  如果错误请及时联系我,以免产生误会。

参考: https://towardsdatascience.com/multi-class-metrics-made-simple-part-i-precision-and-recall-9250280bddc2 https://towardsdatascience.com/multi-class-metrics-made-simple-part-ii-the-f1-score-ebe8b2c2ca1



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭