平衡数据集上二分类Transformer混淆矩阵完全均衡是否合理
问题说明
在类别完全平衡的数据集上训练了标签为0、1的二分类Transformer分类器,模型整体准确率达91%。在验证集上完成阈值调优后,输出的验证集混淆矩阵呈现完全对称平衡的状态,咨询该现象是否合理。
验证集评估日志
09:29:30 root INFO:*** EVALUATION ON VALIDATION DATA *** 09:29:30 root INFO:AUC: 0.9708 09:29:30 root INFO:Tuned Threshold: 0.3104 09:29:31 root INFO:Matthews Correlation Coefficient computed after applying the tuned/selected threshold : 0.8230210619188743 09:29:31 root INFO:Accuracy: 91.15% 09:29:32 root INFO:--Classification report for VAL DATA-- 09:29:32 root INFO: precision recall f1-score support 0 0.91 0.91 0.91 88406 1 0.91 0.91 0.91 88406 accuracy 0.91 176812 macro avg 0.91 0.91 0.91 176812 weighted avg 0.91 0.91 0.91 176812 pred:0 pred:1 true:0 80583 7823 true:1 7823 80583
补充测试集结果
采用验证集得到的调优阈值在测试集上推理,得到的混淆矩阵如下:
pred:0 pred:1 true:0 81714 9968 true:1 9612 82070
现象分析
- 该完全对称的混淆矩阵自然发生的概率极低,基本是阈值调优逻辑导致的人为结果:
- 数据集类别完全平衡,如果阈值调优的目标是最大化macro-F1、平衡两类召回率/精确率,确实会趋向于选择让假阳性(FP)、假阴性(FN)数值接近的阈值,但两个值刚好完全相等(均为7823)属于极端巧合,在近18万样本的验证集上自然出现的概率可以忽略。
- 测试集同阈值下的结果已经佐证了这一点:测试集FP为9968、FN为9612,数值接近但不相等,这才是模型预测结果在独立同分布数据上的正常表现。验证集的完全对称,大概率是阈值搜索代码中隐含了“两类错误数相等”的约束,或者调优目标函数实现存在问题,直接把阈值卡到了FP=FN的位置,不是模型自然输出的结果。
- 其余指标不存在明显异常:验证集AUC0.97、阈值0.31下MCC0.82、准确率91%,指标之间的匹配度符合逻辑,不存在整体评估逻辑全错的问题。
- 合理性判断:如果你的调优目标本身就是追求两类预测表现完全一致(比如要求两类精确率、召回率无差异),那这个对称结果是目标导向下的正常产物;如果你的调优目标是最大化整体准确率、F1值等常规分类指标,说明阈值搜索代码存在逻辑bug,建议检查阈值遍历过程是否额外加了对称约束,或者不同阈值下的混淆矩阵统计是否存在错误。
内容的提问来源于stack exchange,提问作者Chiara
相关产品推荐
相关产品推荐

