本文介绍了为什么有时候CNN的模型只预测了所有其他班级中的一个呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!
问题描述
我是深度学习领域的新手,所以请不要像Reddit那样刻薄!这似乎是一个一般性问题,因此我不会在此给出我的代码,因为它似乎没有必要(如果是,这里有指向colab的链接)
关于数据:您可以找到原始数据here。它是原始数据集82 GB的缩小版本。
一旦我训练我的CNN,它每次都会预测‘没有糖尿病视网膜病变’(没有DR),准确率达到73%。这是因为有大量的无DR映像还是其他原因?我没有头绪!我可以预测的5个类是["Mild","Moderate","NoDR","ProliferativeDR","Severe"]
。
可能是错误的代码,希望你们能帮忙
推荐答案
我正要评论:
更严格的方法是开始测量数据集平衡:每个类有多少个图像?这可能会为您的问题提供答案。
但还是忍不住看了一下您给的链接。Kaggle已经向您概述了数据集:
快速计算:25,812 / 35,126 * 100 = 73%
。这很有趣,你说你的准确度是74%
。您的模型在一个不平衡的数据集上学习,第一个类被过度表示,25k/35k
是巨大的。我的假设是,您的模型一直在预测第一类,这意味着您最终的平均精确度将为74%
。
您应该做的是平衡您的数据集。例如通过仅允许来自第一类的35,126 - 25,810 = 9,316
个示例在历元期间出现。更好的做法是在所有类之间平衡您的数据集,以便每个类在每个纪元中只出现n次。
这篇关于为什么有时候CNN的模型只预测了所有其他班级中的一个呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!
本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!