【发布时间】:2018-09-13 08:17:34
【问题描述】:
我试图了解 rasa nlu(ver-0.12.3) 输出的置信度分数实际上是什么以及它们是如何计算的。
我一直致力于使用 tensorflow 嵌入进行意图分类任务。一旦我的模型经过训练并解析新/测试数据,我就会收到一个置信度分数以及每个可能的意图。但我几乎不知道这个置信度分数实际上代表什么。
如文档中所述,它不代表概率。在对结果进行一些观察之后,它似乎是一种一对多类型的评估,即对于单个文本输入,我可以获得具有高置信度分数的多个意图。
快速查看code后,我认为它是在“embedding_intent_classifier.py”文件中的“_tf_sim”函数中计算的(下面的相关代码段)
有人可以确认/澄清它的工作原理或置信度分数的确切含义吗?
def _tf_sim(self, a, b):
"""Define similarity"""
if self.similarity_type == 'cosine':
a = tf.nn.l2_normalize(a, -1)
b = tf.nn.l2_normalize(b, -1)
if self.similarity_type == 'cosine' or self.similarity_type == 'inner':
sim = tf.reduce_sum(tf.expand_dims(a, 1) * b, -1)
# similarity between intent embeddings
sim_emb = tf.reduce_sum(b[:, 0:1, :] * b[:, 1:, :], -1)
return sim, sim_emb
else:
raise ValueError("Wrong similarity type {}, "
"should be 'cosine' or 'inner'"
"".format(self.similarity_type))
【问题讨论】:
标签: python tensorflow metrics rasa-nlu