为什么模型的准确率高达84%但AUC却非常低13%?

时间:2017-11-02 01:47:43

标签: python machine-learning random-forest

我已经建立了模型,它为随机森林和支持向量机提供了84%的准确度,但只给出了非常低的13%的auc。我在python中构建它,我是机器学习和数据科学的新手。

我在数据集上预测0和1标签。我的整体数据集记录为30744。 标签1 - 6930 标签0 - 23814

你可以告诉我这个没问题吗?模特是否过度装修? 感谢任何关于改善auc的建议?

2 个答案:

答案 0 :(得分:3)

您的问题似乎是您的数据集不平衡,并且确实可能​​过度拟合。

对于这些情况,准确性不是最佳指标,AUC表明您的训练可能会有所改善。虽然很难说它没关系但是你有没有尝试过更多的算法?您是否听说过此数据集上的其他(更好)结果?

确实,想象一个模型应该预测明天是否会发生日食。一个不那么随机的森林可以通过简单地说" no"每时每刻。但是,根本不会有真正的积极因素!

直接而简单的测试是从数据集中选择一个子样本,其中包含来自标签0和标签1的相同数量的示例。您的准确度将是一个更相关的指标(并且可能会低于当前的84%) )。此外,您可以尝试复制一些Label 1示例(最终使用小的随机扰动),直到类得到平衡。顺便说一句,请务必保留数据集的单独部分以进行训练/值/测试,并考虑交叉验证。

最后,我建议您深入研究处理不平衡数据集,特别是ROSE和SMOTE技术,以及一般的重采样。 这些可能很有用:

答案 1 :(得分:0)

不,你的模型不好。 在您的数据集中,大约88%的记录属于"标签0",这使您的模型偏向"标签0"。因此,即使您的AUC较低,它也会显示84%的准确率,因为大多数数据属于"标签0"。 您可以对记录属于"标签0"或过采样记录属于"标签1"使您的模型更准确。

希望它有所帮助。