尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

05 多分类任务中的评估指标:Binary Metrics 如何扩展到 Multi-class?

05 多分类任务中的评估指标:Binary Metrics 如何扩展到 Multi-class? 05 多分类任务中的评估指标Binary Metrics 如何扩展到 Multi-class前面的 TP、FP、TN、FN 都是从二分类问题出发。但是现实任务中经常存在多个类别。例如猫 狗 鸟 马或者Class A Class B Class C Class D这类问题称为Multi-class Classification 多分类那么 Accuracy、Precision、Recall、F1 和 ROC-AUC 应该如何扩展一、多分类中的 Confusion Matrix假设有三个类别Cat Dog Bird混淆矩阵可能如下Actual \ PredictedCatDogBirdCat5032Dog4406Bird1539对角线50 40 39表示预测正确。非对角线表示模型发生了类别混淆。例如Actual Dog Predicted Bird 6说明有 6 个 Dog 被错误分类为 Bird。二、多分类 Accuracy 很简单Accuracy 仍然定义为AccuracyCorrect PredictionsAll PredictionsAccuracy\frac{Correct\ Predictions}{All\ Predictions}AccuracyAllPredictionsCorrectPredictions​在混淆矩阵中就是对角线元素之和 ÷ 全部元素之和例如Accuracy5040391500.86Accuracy\frac{504039}{150}0.86Accuracy150504039​0.86即86%三、Precision 和 Recall 怎么扩展关键思想是一次选择一个类别把它当作 Positive其余所有类别合并成 Negative。这叫One-vs-Rest OvR例如计算 Cat 的 Precision 和 Recall。把Cat视为 Positive。把Dog Bird一起视为 Negative。于是就重新回到了二分类问题。四、Class-wise Precision对于类别 iPrecisioniTPiTPiFPiPrecision_i\frac{TP_i}{TP_iFP_i}Precisioni​TPi​FPi​TPi​​例如 CatTP_cat 真正是 Cat并且预测为 Cat而FP_cat 不是 Cat但被预测为 Cat因此每一个类别都可以拥有自己的 Precision。五、Class-wise Recall对于类别 iRecalliTPiTPiFNiRecall_i\frac{TP_i}{TP_iFN_i}Recalli​TPi​FNi​TPi​​其中FN_i 真正属于类别 i 但模型预测成其他类别因此每一个类别也可以拥有自己的 Recall。六、Class-wise F1对于类别 iF1i2×Precisioni×RecalliPrecisioniRecalliF1_i2\times\frac{Precision_i\times Recall_i}{Precision_iRecall_i}F1i​2×Precisioni​Recalli​Precisioni​×Recalli​​这样可以得到F1_cat F1_dog F1_bird然后问题来了如果有多个 F1最终应该报告哪个这就引出了 Macro、Micro 和 Weighted Average。七、Macro AverageMacro Average 的思路是每一个类别权重相同。例如三个类别Macro PrecisionPrecision1Precision2Precision33Macro\ Precision\frac{Precision_1Precision_2Precision_3}{3}MacroPrecision3Precision1​Precision2​Precision3​​Macro F1Macro F1F11F12F133Macro\ F1\frac{F1_1F1_2F1_3}{3}MacroF13F11​F12​F13​​特点大类别和小类别同等重要因此如果类别不平衡 并且希望关注少数类别Macro F1 通常非常有价值。八、Weighted AverageWeighted Average 按每个类别的样本数量加权。设第 i 个类别样本数量为n_i总样本数量为N则Weighted F1∑iniNF1iWeighted\ F1\sum_i\frac{n_i}{N}F1_iWeightedF1i∑​Nni​​F1i​特点样本多的类别权重更高因此它更接近数据的真实类别分布。但是大类别可能掩盖小类别表现差的问题。九、Micro AverageMicro Average 的思路是先把所有类别的 TP、FP、FN 汇总再统一计算指标。例如Micro Precision∑iTPi∑iTPi∑iFPiMicro\ Precision\frac{\sum_iTP_i}{\sum_iTP_i\sum_iFP_i}MicroPrecision∑i​TPi​∑i​FPi​∑i​TPi​​Micro Recall∑iTPi∑iTPi∑iFNiMicro\ Recall\frac{\sum_iTP_i}{\sum_iTP_i\sum_iFN_i}MicroRecall∑i​TPi​∑i​FNi​∑i​TPi​​Micro 更关注所有样本的总体预测表现对于单标签多分类任务Micro Precision、Micro Recall 和 Micro F1 往往会非常接近整体 Accuracy。十、Macro、Micro、Weighted 怎么选可以这样理解Average核心思想适合场景Macro每个类别同等重要类别不平衡且关心小类别Micro每个样本同等重要关注整体样本表现Weighted按类别数量加权希望反映真实类别分布如果数据Class A 9000 Class B 900 Class C 100那么Weighted F1可能主要由 Class A 决定。而Macro F1会让 Class C 与 Class A 拥有相同权重。所以当少数类别很重要时Macro F1 通常比 Weighted F1 更能暴露问题。十一、多分类 ROC 怎么做ROC 本来是Positive vs Negative多分类没有单一 Positive。因此常见方式仍然是One-vs-Rest例如Cat vs Non-Cat Dog vs Non-Dog Bird vs Non-Bird分别计算 ROC Curve 和 AUC。于是得到AUC_cat AUC_dog AUC_bird然后再进行Macro-average AUC Micro-average AUC Weighted-average AUC十二、One-vs-One另一种方式是One-vs-One OvO例如三个类别Cat vs Dog Cat vs Bird Dog vs Bird分别比较类别对之间的区分能力。OvO 在分析模型究竟容易混淆哪些类别时非常有用。十三、Top-k Accuracy对于类别很多的任务还可能使用Top-k Accuracy例如 Image Classification 中Top-1 Accuracy Top-5 AccuracyTop-5 Accuracy 表示真实类别是否出现在模型概率最高的 5 个类别中。这在类别数量非常多时比单纯 Top-1 更有解释性。十四、不要只报告一个平均值对于多分类问题推荐至少查看Confusion Matrix Per-class Precision Per-class Recall Per-class F1 Macro F1 Weighted F1原因是一个总体平均分很容易掩盖某些类别严重失效的问题。十五、一个典型报告多分类模型的评估报告可以包含Accuracy: 0.91 Macro Precision: 0.86 Macro Recall: 0.84 Macro F1: 0.85 Weighted Precision: 0.92 Weighted Recall: 0.91 Weighted F1: 0.91如果Weighted F1 很高 Macro F1 明显较低往往意味着模型在大类别上表现很好但是在小类别上表现较差。十六、总结多分类评估并没有发明完全不同的指标。核心思想仍然是把每一个类别轮流视为 Positive 其余类别视为 Negative然后计算Precision Recall F1 ROC-AUC最终再通过Macro Micro Weighted进行汇总。理解这一点之后多分类指标就会非常自然。
返回列表