我做了很多,因为我得到了SO的帮助,基于广泛和深入的Tensorflow教程(here is its "Main" file this question is referring to)的二进制分类器,用于"宽"只有模式。
我用来提取分类猜测的函数是:
pred_iter = model.predict(input_fn=lambda: input_fn(FLAGS.test_data, 1, False, 1)) for pred in pred_iter:
print(pred['classes'])
它在分类方面效果很好但分类仅以0
或1
的形式返回,因此缺乏概率方面。
我想将分类表示为0到1之间的数字,以便了解"如何确定"网是它的猜测。
我们将训练一个逻辑回归模型,并给出一个个体 信息我们的模型将输出一个介于0和1之间的数字,这可以 被解释为概率[...]
但我无法设法获得预测的这种概率方面。
我曾尝试使用许多答案中列出的 prob_a 函数,但它可以引用旧版TF
,所以没有运气。
我如何才能有效地将分类作为一个概率,而不是作为一个单一的镜头"?
感谢任何帮助。
我在Python 3.5,OS Ubuntu 16.04 LTS上使用TF 1.8。
答案 0 :(得分:1)
tf.estimator.LinearClassifier
实例返回您可以使用的值字典。您只在代码中使用pred[ 'classes' ]
,但概率值也在pred[ 'probabilities' ]
。你也可以
print( pred )
将输出与此类似的内容(带有虚拟数据):
{' logits&#39 ;: array([1.4264423],dtype = float32),
' logistic':数组([0.80634636],dtype = float32),
'概率':数组([0.19365363,0.80634636],dtype = float32),
' class_ids':数组(1),
'类':数组([b' 1'],dtype = object)}
因此您可以看到您还可以访问logits
和class_ids
。
第1类的概率是pred[ 'probabilities' ]
中的第二个值,正如我所理解的那样你想要使用它。