【问题标题】:Wide_deep classifier model, need to predict probability value, not only "best guess"Wide_deep 分类器模型,需要预测概率值,而不只是“最佳猜测”
【发布时间】:2018-10-23 07:33:52
【问题描述】:

由于我在 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、操作系统 Ubuntu 16.04 LTS 上使用 TF 1.8。

【问题讨论】:

    标签: python tensorflow ubuntu-16.04 python-3.5


    【解决方案1】:

    tf.estimator.LinearClassifier 实例返回您可以使用的值字典。您只在代码中使用了pred[ 'classes' ],但概率值也在pred[ 'probabilities' ] 中。你也可以

    print( pred )
    

    这将输出与此类似的内容(带有虚拟数据):

    {'logits': 数组([1.4264423], dtype=float32),
    “逻辑”:数组([0.80634636],dtype=float32),
    “概率”:数组([0.19365363,0.80634636],dtype=float32),
    'class_ids': 数组(1),
    'classes': 数组([b'1'], dtype=object) }

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

    第1类的概率是pred[ 'probabilities' ]中的第二个值,据我了解,这是您要使用的。

    【讨论】:

    • 谢谢!这是我一直在寻找的答案!您能否将相关文档链接给我,以便更好地理解返回的其他值?
    • 当然,很乐意为您提供帮助!不知道哪里有详细的介绍。我找不到一个。这就是为什么我使用(并建议)简单地打印结果以查看其中的内容。
    猜你喜欢
    • 2020-09-08
    • 2021-05-31
    • 1970-01-01
    • 2019-09-16
    • 2018-10-12
    • 2016-12-04
    • 1970-01-01
    • 2020-06-09
    • 2016-01-05
    相关资源
    最近更新 更多