python - 当输出不等概率时如何提高准确性?
问题描述
我有一个图像分类器,每个图像都有 5 个标签 [0-4] 中的一个。我已经达到了大约 72% 的准确率墙,并且正在寻找克服它的方法。我注意到我的课程 [在我的训练集中] 在 0 中非常“重”,在 4 中“重”一点。1's、2's 和 3's 不太常见。
所以:
1)这是我的不准确问题的一个可能因素吗?1a) 我怎么能确定?
2)如果是这样,我该如何处理?
这是目前的模型。我已经调整了一段时间的参数:
Layer (type) Output Shape Param #
=================================================================
conv2d_1 (Conv2D) (32, 318, 318, 4) 112
_________________________________________________________________
conv2d_2 (Conv2D) (32, 318, 318, 4) 148
_________________________________________________________________
conv2d_5 (Conv2D) (32, 318, 318, 4) 148
_________________________________________________________________
conv2d_6 (Conv2D) (32, 318, 318, 4) 148
_________________________________________________________________
max_pooling2d (MaxPooling2D) (32, 106, 106, 4) 0
_________________________________________________________________
flatten (Flatten) (32, 44944) 0
_________________________________________________________________
d0 (Dense) (32, 16) 719120
_________________________________________________________________
softmax_d1 (Dense) (32, 5) 85
=================================================================
解决方案
1 - 如果不平衡很高,这可能会导致不准确。
2 - 您可以使用class_weight
inmodel.fit(class_weight={0: w0, 1: w1, 2: w2, 3: w3)
来解决此问题。
推荐阅读
- android - 通过 ADB shell 登录到 Debug UART
- azure - Azure 基本到标准 SKU 负载均衡器升级,无需停机
- mysql - SQL查询总和的多个总和和平均值
- java - 如何让整个项目在 IntelliJ IDEA 中运行?
- python - “func azure functionapp publish”返回错误代码 400
- java - 无法删除片段
- mqtt - mqtt:如何强制执行完整的消息状态,然后是增量
- django - 如何修复 Django 自定义过滤器:“命名空间未绑定错误”
- c# - 阻止用户后结束会话并手动使访问令牌过期
- html - Html / AngularJs - 使按钮全宽