【机器学习】多分类任务的性能评价——宏平均和微平均

时间:2024-05-23 10:38:09

很多时候我们有多个二分类混淆矩阵,例如进行多次训练/测试,每次得到一个混淆矩阵;或是在多个数据集上进行训练/测试,希望估计算法的“全局”性能;甚或是执行多分类任务,每两两类别的组合都对应一个混淆矩阵。总之,我们希望在n个二分类混淆矩阵上综合考察查准率和查全率。

二分类的分类结果混淆矩阵

真实情况/预测结果 正例 反例
正例 TP(真正例) FN(假反例)
反例 FP(假正例) TN(真反例)

多分类分类结果的混淆矩阵
【机器学习】多分类任务的性能评价——宏平均和微平均

  • P = TP / ( TP + NP )
  • R = TP / ( TP + FN )
  • F1 = 2PR / ( P + R )

宏平均(Macro-Average)

做法:先在各混淆矩阵上分别计算出查准率和查全率,再计算平均值

【机器学习】多分类任务的性能评价——宏平均和微平均

微平均(Micro-Average)

做法:先将各混淆矩阵的对应元素进行平均,得到TP,FP,TN,FN的平均值,再基于这些平均值计算查全率和查准率

【机器学习】多分类任务的性能评价——宏平均和微平均

宏平均和微平均的对比

【机器学习】多分类任务的性能评价——宏平均和微平均

  • 如何每个class的样本数量相差不大,那么宏平均和微平均差异也不大
  • 如果每个class的相差较大并且你想:
    更注重样本量多的class:使用宏平均
    更注重样本量少的class:使用微平均
  • 如果微平均远低于宏平均,则应该去检查样本量多的class
  • 如果宏平均远低于微平均,则应该去检查样本量少的class