【问题标题】:Binary crossentropy output, how to read the output?二进制交叉熵输出,如何读取输出?
【发布时间】:2021-07-27 15:26:07
【问题描述】:

我有一个二元交叉熵模型,分为两类:[正常,看涨]。
当我调用 model.predict() 时,输出返回一个概率,我怎么知道概率属于哪个类?
我使用的是 keras 函数模型。

final layer: 1 unit, sigmoid activation.
classes: ["normal", "bullish"]
class indices: {'bullish': 0, 'normal': 1}

那么当单个预测返回 [0.5905021] 时,它有 59% 的机会是看涨还是正常类别?

【问题讨论】:

    标签: python python-3.x keras deep-learning


    【解决方案1】:

    您应该定义一个通常为0.5 的阈值。低于阈值的值意味着它被归类为您在带有0 的标签中指定的类,高于阈值的值意味着另一个类。

    所以在您的情况下,0.59 表示它属于您指定为1 的类,即normal

    【讨论】:

    • 谢谢!当我有一个类别索引{'bearish_1': 0, 'bullish_1': 1, 'normal': 2} 的分类交叉熵模型softmax 激活时。这是否也意味着索引0 处的概率分布适用于bearish_1,索引1 处的概率分布适用于bullish_1,而索引2 处的概率分布适用于normal
    • @dbergh2:没错。如果每个类有 1 个单独的神经元和一个 softmax 激活函数,则输出值的总和将为 1.0。每个输出值都显示了它对应的类的概率作为输出,就像你说的那样。
    猜你喜欢
    • 2019-11-03
    • 2018-08-03
    • 1970-01-01
    • 2019-11-23
    • 2021-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    相关资源
    最近更新 更多