我正在研究二进制分类器问题,我使用了 Tensorflow 低级 API。最后一层用 Sigmoidal 函数包裹,只返回一个值。
对于我的预测,我只是将标准阈值设置为 0.5,因此如果它 > 0.5,我预测为 1,否则为 0。
我也在寻找每个预测的置信度。是否有可能与此架构相同,还是需要进行一些修改?
我正在研究二进制分类器问题,我使用了 Tensorflow 低级 API。最后一层用 Sigmoidal 函数包裹,只返回一个值。
对于我的预测,我只是将标准阈值设置为 0.5,因此如果它 > 0.5,我预测为 1,否则为 0。
我也在寻找每个预测的置信度。是否有可能与此架构相同,还是需要进行一些修改?
由于以 sigmoid 激活结束的神经网络输出概率,因此您可以按原样获取网络的输出。
如果你指的是 scikit-learn 的predict_proba,它相当于在 tensorflow 中取模型的 sigmoid-activated 输出。事实上,这正是 scikit-learn 所做的。
例如,如果游览模型类,您将其分类为(因为),概率为。小号
通常二元分类器使用一个输出节点和 Sigmoid 激活函数来实现。在这种情况下,您得到的输出是观察属于 1 类的预测概率(与 0 相比)。如果你想要一个概率分布,你可以简单地将预测的 y 与 1-y 配对,意思是“另一类的概率”。
或者,您可以使用两个输出节点和 Softmax 激活函数来实现模型。然后输出将是两个类的概率分布。
我也在寻找每个预测的置信度。是否有可能与此架构相同,还是需要进行一些修改?
神经网络不计算置信度。已经对如何估计它们进行了许多研究。我更了解的是基于 dropout 作为一种扰动方法。它基于在对模型进行多重预测训练后使用不同级别的 dropout ,并在这些模型上建立标准置信区间。你可以在这里阅读它的介绍。我不得不说,实现并不简单,而且它是一个计算密集型的过程。