Wide_deep分类器模型,需要预测概率值,而不仅仅是"最佳猜测"

时间:2018-05-13 13:45:50

标签: python tensorflow ubuntu-16.04 python-3.5

我做了很多,因为我得到了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'])

它在分类方面效果很好但分类仅以01的形式返回,因此缺乏概率方面。

我想将分类表示为0到1之间的数字,以便了解"如何确定"网是它的猜测。

introduction itself

  

我们将训练一个逻辑回归模型,并给出一个个体   信息我们的模型将输出一个介于0和1之间的数字,这可以   被解释为概率[...]

但我无法设法获得预测的这种概率方面。

我曾尝试使用许多答案中列出的 prob_a 函数,但它可以引用旧版TF,所以没有运气。

我如何才能有效地将分类作为一个概率,而不是作为一个单一的镜头"?

感谢任何帮助。

我在Python 3.5,OS Ubuntu 16.04 LTS上使用TF 1.8。

1 个答案:

答案 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)}

因此您可以看到您还可以访问logitsclass_ids

第1类的概率是pred[ 'probabilities' ]中的第二个值,正如我所理解的那样你想要使用它。