在交叉验证中验证接近训练准确度,但模型很糟糕

时间:2021-07-11 12:19:51

标签: neural-network

这是一道考试题:

<块引用>

您的任务是构建一个模型来预测电子邮件是否为垃圾邮件 对于邮件服务。您可以访问超过 1000 万封邮件的庞大数据集, 其中 99% 的邮件不是垃圾邮件。您的模型始终达到了 使用 100 倍交叉验证在您的验证和训练集上达到 99%。这 邮件服务的所有者对高精度和您的模型印象非常深刻 用于过滤真正的垃圾邮件。然而,邮件服务的用户抱怨说 垃圾邮件根本没有过滤。最可能的原因是什么? 什么是可能的解决方案?

所以我认为原因可能是模型总是说电子邮件不是垃圾邮件。但我对第二部分(可能也是第一部分)迷失了。

1 个答案:

答案 0 :(得分:2)

所以是的,问题在于训练数据集非常不平衡。 如果模型预测每封电子邮件都不是垃圾邮件,那么它最终的准确率将达到 99%。

有3种方法可以解决这个问题:

1- 通过对“非垃圾邮件”电子邮件的多数类进行欠采样(Downsampling)来平衡数据集,并使数据集更加平衡。

2- 使用类权重。请参阅以下链接: https://www.analyticsvidhya.com/blog/2020/10/improve-class-imbalance-class-weights/

3- 最重要的方法是使用以下因素作为性能指标而不是准确性:

精度:真阳性/所有预测阳性

召回:真阳性/所有实际阳性