我已经使用HuggingFace transformers.TFBertForSequenceClassification
分类器训练了BERT分类器。它工作正常,但是当使用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]]
对我来说,label-0代表不欺诈,label-1代表欺诈,所以一切正常。但是如何从这里准备得分信心呢?在这种情况下,使用softmax进行规范化是否有意义?另外,如果我想看看那些对模型不确定的预测,我该怎么做?在那种情况下,两个值会彼此非常接近吗?
答案 0 :(得分:0)
是的。您可以使用softmax。更精确地说,在argmax上使用argmax以获得标签预测值,例如0或1。
y_pred = tf.nn.softmax(model.predict(test_dataset))
y_pred_argmax = tf.math.argmax(y_pred, axis=1)
当我有相同的查询时,此blog对我很有帮助。
要回答您的第二个问题,我想请您关注分类模型误分类了哪些测试实例,而不是试图寻找不确定的模型。
因为,argmax总是返回0或1,而永远不会返回0.5。而且,我想说标签0.5将是声称您的模型具有优柔寡断性的适当值。