二元分类概率

数据挖掘 喀拉斯 r 时间序列 金融
2022-02-19 23:43:14

我在 R 中使用 keras 来预测金融时间序列。我猜ANN会收敛。 在此处输入图像描述

但是当我做预测时,我可以看到概率总和不等于 1

在此处输入图像描述

relu用作最终激活和loss = "binary_crossentropy". 这是否意味着网络没有收敛或者我错过了其他东西?

2个回答

即使神经网络的输入被缩放或标准化,原始输出值仍然可能超出该范围。

在您的情况下,输出值被解释为做出二进制是/否决定,但原始值不一定被解释为原始概率!它们只是网络的最终激活。

为了达到您的期望,最终的激活通常通过一个softmax函数传递,该函数基本上将您在表中看到的值压缩为每行的总和为 1 - 这使我们可以将它们视为进行最终分类的概率

在实践中,这意味着只需将 softmax 激活添加到DenseKeras ( ) 中的最后一层activation="softmax",然后使用以下命令编译模型: loss="categorical_crossentropy"

由于您有 2 个数字,因此您的网络有两个输出节点。例如,女性和男性。在二进制分类中,输出节点是独立的,每个节点的预测是从 0 到 1。因此,您应该考虑一个阈值(通常为 0.5)。然后,如果预测值高于男性的此阈值,则将图像视为男性。