precision_at_k

本文讨论了一个三分类问题,分析了在10条数据中,当k取不同值时precision_at_k指标的变化。作者认为precision_at_k可能不是衡量多分类结果的理想指标,并欢迎读者提出不同见解。
摘要由CSDN通过智能技术生成

假设输出节点是三个, 即对应的是一个三分类问题。假设有10条数据,输出层的结果如下表所示

预测 0 1 2 实际标签
1 3.2901842e-04 6.2009683e-05 9.9960905e-01 2
2 9.3300034e-05 6.3389372e-05 9.9984324e-01 2
3 1.8921893e-04 1.3000969e-04 9.9968076e-01] 0
4 7.2724116e-04 3.1397035e-04 9.9895883e-01 0
5 1.7774174e-03 5.5241789e-04 9.9767011e-01 0
6 1.5353756e-03 3.8222148e-04 9.9808240e-01 2
7 5.0105453e-03 8.7840611e-04 9.9411100e-01 2
8 1.1946440e-04 1.0893926e-04 9.9977165e-01 0
9 4.0907355e-04 2.3722800e-04 9.9935371e-01 0
10 5.0522230e-04 3.5394888e-04 9.9914086e-01 2

来看下k取不同值时,percision_at_k()的结果

tf.metrics.precision_at_k(labels=label_ids, predictions=logits,k=?) k=1 k =2 k=3
结果 0.50 0.45 0.33
计算 第1,2,6,7,10概率最大的标签是2与真实标签一致,所以tp=5.其他的几条虽然最大标签也为2,但与真实标签不一致, fp=5 1-10每一条的数据取概率最大的两个标签,正确的只有一个,另一个是不正确的。tp=10, fp=10。 同k=2, 每条数据的预测值都是正确的只有一个标签, 错误的是两个。故tp=10, fp=20
最终 p k = 1 = t p t p + f p = 5 5 + 5 p_{k=1}=\frac{tp}{tp+fp}=\frac5{5+5} p
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值