基于预测值的Keras自定义召回度量

时间:2017-08-16 18:16:42

标签: python numpy keras precision-recall

我想在keras中实现一个自定义指标来计算回忆,假设前k%最有可能的1是真的。

y_pred_probs我会这样做。对y_preds_probs进行排序。然后取numpy索引处的值。注意k会给出中值。

k=0.5

来自Keras custom decision threshold for precision and recall的答案非常接近但是假设已经知道决定哪个kth_pos = int(k * len(y_pred_probs)) threshold = np.sort(y_pred_probs)[::-1][kth_pos] y_pred = np.asarray([1 if i >= threshold else 0 for i in y_pred_probs]) 被假为真的阈值。我希望结合这些方法,并在可能的情况下根据Keras后端的y_predk找到threshold_value。

y_pred

1 个答案:

答案 0 :(得分:2)

感谢您引用我之前的回答。

在这种情况下,如果您使用张量流后端,我建议您使用此tensorflow function

tf.nn.in_top_k(
    predictions,
    targets,
    k,
    name=None
)

它输出一个bool的张量,如果答案属于top k,则输出1,如果答案不属于top k,则输出0。

如果您需要更多信息,我已经链接了tensorflow文档。我希望它有所帮助。 :-)