【问题标题】:Improve Precision of Negative class in Neural Network Output提高神经网络输出中负类的精度
【发布时间】:2021-04-25 03:17:33
【问题描述】:

我已经训练 CNN 来预测音调(负、中性、正),并且我有 4 种不同的 CNN 模型,它们的架构和数据集略有不同。这些模型在大多数测试用例中运行良好,并提供了预期的输出。 代码:

# 0 is for Negative
# 1 is for Neutral
# 2 is for Positive

print(model.predict(x),model.predict_classes(x))

我从所有 4 个模型中得到的输出如下。

[[1.0000000e+00 2.4311501e-12 1.3999395e-16]] [0]
[[4.4723673e-04 5.5520708e-08 9.9955267e-01]] [2]
[[5.34977562e-06 1.20891924e-29 9.99994636e-01]] [2]
[[9.9999642e-01 2.8299738e-24 3.6233271e-06]] [0]

我想做的是为正类和中性类预测神经元提供更多权重,以便我的模型更倾向于预测正类和中性类输出而不是负类输出。我想知道操纵概率的正确方法是什么,以便模型仅在 100% 确定其为负时才输出负。因此,与其他类相比,我希望我的模型在预测负类时更精确,同时在最终预测中平等地纳入所有 4 个模型的概率。

【问题讨论】:

    标签: python tensorflow neural-network precision precision-recall


    【解决方案1】:

    将损失函数更改为tf.nn.weighted_cross_entropy_with_logits()

    【讨论】:

    • 我正要使用它,但后来我看到它提到了不平衡的数据,这让我很失望,因为我的数据是平衡的,所以我想一旦我从所有这些模型中获得预测分数,我就可以设置一些阈值获得所需的功能,我不必再次训练模型。
    猜你喜欢
    • 1970-01-01
    • 2023-01-28
    • 2023-03-29
    • 2016-11-22
    • 2017-12-14
    • 2015-06-24
    • 1970-01-01
    • 2017-01-24
    • 2016-10-22
    相关资源
    最近更新 更多