You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

交叉验证训练验证准确率接近但垃圾邮件分类模型效果差的原因与解决

问题原因

你的判断完全正确,出现该问题的核心原因是数据集类别极度不平衡+误用准确率作为评估指标:
数据集里99%的样本都是非垃圾邮件,只要模型直接将所有样本判定为非垃圾邮件,就能轻松达到99%的准确率,和你得到的训练、验证集准确率完全吻合。这种情况下模型完全没有学习到识别垃圾邮件的能力,上线后自然过滤不了任何垃圾邮件。
准确率指标本身只统计整体预测正确的样本占比,完全无法体现对少数类(垃圾邮件)的识别效果,在不平衡分类任务里不能作为核心评估指标。

可行解决方案

  • 更换评估指标:放弃单独使用准确率,改用更适配不平衡分类任务的指标,包括垃圾邮件类别的召回率(Recall)、精确率(Precision)、F1值、PR曲线下面积(AUC-PR),重点关注垃圾邮件的召回率(即实际是垃圾邮件的样本里被正确识别的比例)。
  • 优化训练数据分布:对训练集做重采样处理,可以选择对少数类(垃圾邮件)做过采样(比如SMOTE算法),也可以对多数类(非垃圾邮件)做欠采样,或者过采样+欠采样结合使用,平衡训练集的类别比例。注意验证集和测试集要保持真实的类别分布,避免评估结果失真。
  • 增加类别权重:训练时给少数类(垃圾邮件)设置更高的损失权重,比如常用的class_weight='balanced'参数,让模型更关注少数类的分类错误,不需要改动原始数据分布就能缓解类别不平衡带来的问题。
  • 调整分类阈值:不要使用默认的0.5分类阈值,根据业务需求降低判定为垃圾邮件的阈值,优先保证尽可能多的垃圾邮件被识别出来,再根据用户对正常邮件误判的容忍度调整阈值,平衡精确率和召回率。
  • 选择对不平衡数据更友好的模型:比如XGBoost、LightGBM等树模型,本身支持类别权重设置,对不平衡数据的适配性比简单的线性模型更好。

内容的提问来源于stack exchange,提问作者ryszard eggink

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 22:12:02