ML分类模型的评估量 —— 混淆矩阵、查准率、查全率、正确率、F1值

ML分类模型的评估量 —— 混淆矩阵、查准率、查全率、正确率、F1值

Some Metrics suitable for machine learning classification model - Confusion Matrix, Precision Score, Recall Score and F1 Score.

概要

本文意在介绍,监督学习(Supervised Learning)中,几个常被用于评估分类模型指标(model metric),并讨论它们在二分类模型和多分类模型中的具体计算方法。
在这里插入图片描述

图 1

1. 混淆矩阵(Confusion Matrix)

混淆矩阵(Confusion Matrix)是一个 n*n 的方阵,n的值等于数据集类别的数量。

二分类模型的混淆矩阵

如图 2 所示,该 2*2 方阵是一个典型的二分类模型的混淆矩阵,该模型中只有 positive 和 negative 两个类别(标签):

在这里插入图片描述

图 2 - 二分类模型的混淆矩阵

TP (True Positive)表示真实值为Positive,模型的预测值为Positive的数据样本数量;

FP (False Positive)表示真实值为Negative,模型的预测值为Positive的数据样本数量;

FN (False Negative)表示真实值为Positive,模型的预测值为Negative的数据样本数量;

TN (True Negative)表示真实值为Negative,模型的预测值为Negative的数据样本数量;

此处的 [True/False Positive/Negative]可以这样理解:“主语” Positive/Negative 描述了模型的预测值,而“形容词” True/False 描述的是预测值与真实值是否一致,一致为True,否则为False。

此外,从【图2】中我们不能发现,混淆矩阵的列(column)表示数据被模型预测的类别(prediction label);混淆矩阵的行(row)表示数据的真实类别(true label)。以及,混淆矩阵每一列的总和表示数据中被模型预测为该类的样本数量;混淆矩阵每一行的总和表示数据中真实标签为该类的样本数量。

多分类模型的混淆矩阵

上方【图2】是二分类模型的混淆矩阵,下方【图3】将混淆矩阵推广到多分类模型:

在这里插入图片描述

图 3 - 多分类模型的混淆矩阵

【图3】为一个n*n的混淆矩阵,该混淆矩阵包含了n个类别(标签),label_1、label_2、… 、label_n ,其中标黄的位置表示被正确分类的样本数量,相当于【图2】中的TP和TN。

2. 查准率(Precision Score)又称 “准确率”

查准率(Precision)描述的模型预测的结果中有多少比例的样本是被正确预测的。

对于二分类模型,一般采用Positive(+)的查准率作为整个模型的评估量:

P + = T P T P + F P P_{+} = \frac{TP}{TP + FP} P+=TP+FPTP

宏查准率 & 微查准率

类似的,将查准率推广到多分类模型。

首先,每个label都有对应的查准率:

P l a b e l _ k = C k k ∑ 1 ≤ i ≤ n ;    j = k C i j , ( 1 ≤ k ≤ n ) P_{label\_k} = \frac{C_{kk}}{\sum_{1 \leq i \leq n; \;j = k} C_{ij}}, \quad(1 \leq k \leq n) Plabel_k=1in;j=kCijCkk,(1kn)
其次,存在两种适用于整个模型的查准率评估量,它们分别是下方【式3】描述的宏查准率(macro precision)和下方【式4】描述的微查准率(micro precision)

宏查准率,先计算出混淆矩阵中个类别的查准率,然后计算均值。

P m a c r o = 1 n ∑ 1 ≤ k ≤ n P l a b e l _ k P_{macro} = \frac{1}{n} \sum_{1 \leq k \leq n} P_{label\_k} Pmacro=n11knPlabel_k

微查准率,先对混淆矩阵的“对角线元素”和“元素的和”计算均值,然后在计算查准率。

P m i c r o = 1 n ∑ 1 ≤ k ≤ n C k k 1 n ∑ 1 ≤ k ≤ n ( ∑ 1 ≤ i ≤ n ;    j = k C i j ) P_{micro} = \frac{\frac{1}{n} \sum_{1 \leq k \leq n} C_{kk}}{\frac{1}{n} \sum_{1 \leq k \leq n} (\sum_{1 \leq i \leq n; \;j = k} C_{ij}) } Pmicro=n11kn(1in;j=kCij)n11knCkk

相比之下,当不同类别间的样本数量不平衡时,微查准率可以涵盖样本数量不均的信息;对于宏查准率而言,每个类别的查准率对整个模型的查准率的贡献量是相同的,所以它无法体现不同类别间样本数量不均的信息

3. 查全率(Recall Score)又称 “召回率”

查全率(Recall)描述的是数据集中有多少比例的样本被模型正确预测。

对于二分类模型,一般采用Positive(+)的查全率作为整个模型的评估量:

R + = T P T P + F N R_{+} = \frac{TP}{TP + FN} R+=TP+FNTP

宏查全率 & 微查全率

类似的,将查全率推广到多分类模型。

首先,每个label都有对应的查准率:

R l a b e l _ k = C k k ∑ i = k ;    1 ≤ j ≤ n C i j , ( 1 ≤ k ≤ n ) R_{label\_k} = \frac{C_{kk}}{\sum_{i = k; \;1 \leq j \leq n} C_{ij}}, \quad(1 \leq k \leq n) Rlabel_k=i=k;1jnCijCkk,(1kn)
其次,同样存在两种适用于整个模型的查全率评估量,它们分别是下方【式7】描述的宏查全率(macro recall)和下方【式8】描述的微查全率(micro recall)

宏查全率,先计算出混淆矩阵中个类别的查准率,然后计算均值。

R m a c r o = 1 n ∑ 1 ≤ k ≤ n R l a b e l _ k R_{macro} = \frac{1}{n} \sum_{1 \leq k \leq n} R_{label\_k} Rmacro=n11knRlabel_k

微查全率,先对混淆矩阵的对“角线元素”和“元素的和”计算均值,然后在计算查准率。

R m i c r o = 1 n ∑ 1 ≤ k ≤ n C k k 1 n ∑ 1 ≤ k ≤ n ( ∑ i = k ;    1 ≤ j ≤ n C i j ) R_{micro} = \frac{\frac{1}{n} \sum_{1 \leq k \leq n} C_{kk}}{\frac{1}{n} \sum_{1 \leq k \leq n} (\sum_{i = k; \;1 \leq j \leq n} C_{ij}) } Rmicro=n11kn(i=k;1jnCij)n11knCkk

与宏/微查准率同理,微查全率可以涵盖样本数量不均的信息;宏查全率无法体现不同类别间样本数量不均的信息。

4. 正确率(Accuracy Score)

正确率(Accuracy)描述的整个数据集中被正确预测的比例,它的数学表达式如下:

A = T P + T N T P + T N + F P + F N A = \frac{TP + TN}{TP + TN + FP + FN} A=TP+TN+FP+FNTP+TN

A = ∑ 1 ≤ k ≤ n C k k ∑ 1 ≤ i ≤ n ;    1 ≤ j ≤ n C i j A = \frac{\sum_{1 \leq k \leq n} C_{kk}} {\sum_{1 \leq i \leq n; \; 1 \leq j \leq n} C{ij}} A=1in;1jnCij1knCkk

【式9】对应二分类模型的混淆矩阵,【式10】对应多分类模型的混淆矩阵

5. F1值

查准率(Precision)和差全率(Recall)往往是一对矛盾的度量。一般来说,查准率较高时,查全率会较低,而查全率较高时,查准率较低。

我们可以采用一种较为极端的想法来理解这一现象,当模型将数据集中的所有样本都预测为某一特定类别时,该类别的查准率最高(等于1),同时该类别的查全率最低(因为存在大量样本被错误预测)。

为此,常采用F1值来作为模型的评估量,这是一个结合了查准率(Precision)和查全率(Recall)的量:

F 1 m a c r o = 2 × P m a c r o × R m a c r o P m a c r o + R m a c r o F1_{macro} = \frac{2 \times P_{macro} \times R_{macro}}{P_{macro} + R_{macro}} F1macro=Pmacro+Rmacro2×Pmacro×Rmacro

F 1 m i c r o = 2 × P m i c r o × R m i c r o P m i c r o + R m i c r o F1_{micro} = \frac{2 \times P_{micro} \times R_{micro}}{P_{micro} + R_{micro}} F1micro=Pmicro+Rmicro2×Pmicro×Rmicro

【式11】为宏F1值,【式12】为微F1值。

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值