我用HuggingFace transformers.TFBertForSequenceClassification分类器训练了伯特分类器。它工作得很好,但是当使用model.predict()方法时,它给出了一个元组作为输出,在0,1,例如,我训练模型将新闻文章分类为欺诈和非欺诈类别。然后,我将以下4个测试数据输入到模型中进行预测:
articles = ['He was involved in the insider trading scandal.',
'Johnny was a good boy. May his soul rest in peace',
'The fraudster stole money using debit card pin',
'Sun rises in the east']产出如下:
[[-2.8615277, 2.6811066],
[ 2.8651822, -2.564444 ],
[-2.8276567, 2.4451752],
[ 2.770451 , -2.3713884]]对我来说标签-0代表非欺诈,标签-1代表欺诈,所以效果很好。但从现在开始,我该如何准备得分信心呢?在这种情况下,使用softmax进行规范化是否有意义?此外,如果我想看看那些预测,在模型是有点优柔寡断,我怎么做呢?在这种情况下,这两个值会非常接近吗?
发布于 2020-11-26 05:08:09
是。你可以使用softmax。更准确地说,使用argmax超过softmax来获得像0或1这样的标签预测。
y_pred = tf.nn.softmax(model.predict(test_dataset))
y_pred_argmax = tf.math.argmax(y_pred, axis=1)当我有同样的查询时,这个博客对我很有帮助。
为了回答你的第二个问题,我想让你把重点放在你的分类模型错误分类的测试实例上,而不是试图找出模型走向优柔寡断的地方。
因为,argmax总是返回0或1,而不返回0.5。而且,我想说,标签0.5将是适当的价值,声称你的模型是优柔寡断。
https://stackoverflow.com/questions/63112907
复制相似问题