Why do sometimes CNN models predict just one class out of all others?(为什么有时候CNN的模型只预测了所有其他班级中的一个呢?)
本文介绍了为什么有时候CNN的模型只预测了所有其他班级中的一个呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是深度学习领域的新手,所以请不要像Reddit那样刻薄!这似乎是一个一般性问题,因此我不会在此给出我的代码,因为它似乎没有必要(如果是,这里有指向colab的链接)
关于数据:您可以找到原始数据here。它是原始数据集82 GB的缩小版本。
一旦我训练我的CNN,它每次都会预测‘没有糖尿病视网膜病变’(没有DR),准确率达到73%。这是因为有大量的无DR映像还是其他原因?我没有头绪!我可以预测的5个类是["Mild", "Moderate", "No DR", "Proliferative DR", "Severe"]
。
可能是错误的代码,希望你们能帮忙
推荐答案
我正要评论:
更严格的方法是开始测量数据集平衡:每个类有多少个图像?这可能会为您的问题提供答案。
但还是忍不住看了一下您给的链接。Kaggle已经向您概述了数据集:
快速计算:25,812 / 35,126 * 100 = 73%
。这很有趣,你说你的准确度是74%
。您的模型在一个不平衡的数据集上学习,第一个类被过度表示,25k/35k
是巨大的。我的假设是,您的模型一直在预测第一类,这意味着您最终的平均精确度将为74%
。
您应该做的是平衡您的数据集。例如通过仅允许来自第一类的35,126 - 25,810 = 9,316
个示例在历元期间出现。更好的做法是在所有类之间平衡您的数据集,以便每个类在每个纪元中只出现n次。
这篇关于为什么有时候CNN的模型只预测了所有其他班级中的一个呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:为什么有时候CNN的模型只预测了所有其他班级中的一个呢?
基础教程推荐
猜你喜欢
- 使用 Google App Engine (Python) 将文件上传到 Google Cloud Storage 2022-01-01
- 合并具有多索引的两个数据帧 2022-01-01
- 症状类型错误:无法确定关系的真值 2022-01-01
- 哪些 Python 包提供独立的事件系统? 2022-01-01
- 如何在Python中绘制多元函数? 2022-01-01
- 如何在 Python 中检测文件是否为二进制(非文本)文 2022-01-01
- 使 Python 脚本在 Windows 上运行而不指定“.py";延期 2022-01-01
- 使用Python匹配Stata加权xtil命令的确定方法? 2022-01-01
- Python 的 List 是如何实现的? 2022-01-01
- 将 YAML 文件转换为 python dict 2022-01-01