Keras如何计算准确性?


26

Keras如何从类别概率计算准确性?假设,例如,测试集中有100个样本,它们可以属于两个类别之一。我们也有一个类概率列表。Keras使用什么阈值将样本分配给两个类别中的任何一个?


您在喀拉拉邦使用model.evaluate吗?
Hima Varsha

是的,我正在使用model.evaluate。更具体地说,是model.evaluate_generator。
拉古拉姆


可能相关@SO:Keras 如何评估准确性?
desertnaut

Answers:


24

对于二进制分类,准确性度量的代码为:

K.mean(K.equal(y_true, K.round(y_pred)))

这表明0.5是区分类别的阈值。在这种情况下,y_true当然应该为1-hots。

类别分类有些不同:

K.mean(K.equal(K.argmax(y_true, axis=-1), K.argmax(y_pred, axis=-1)))

这意味着“预测与真实值在同一位置出现最大值的频率”

top-k类别准确性也有一个选项,与上面的选项类似,但是计算目标类别在top-k预测内的频率。


谢谢你的回答。这是否意味着即使对于二进制分类,标签也需要进行一次热编码?
拉古拉姆

@Raghuram不,对于二进制分类,您只需要0或1作为类,就不需要对其进行热编码。由于K.mean(K.equal(y_true,K.round(y_pred)))在每种情况下都将匹配2个浮点值,因此它必须为0或1,而不是[0,1],[1,0]。
Divyanshu Kalra

要获得绝对准确度,请使用categorical_accuracy
Shital Shah

1
对于多类问题(具有两个以上的类),使用“准确性”与“ categorical_accuracy”之间是否有区别
Quetzalcoatl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.