python计算precision@k、recall@k和f1_score@k

本文介绍了一种计算Top-K精度、召回率和F1分数的方法,适用于机器学习中多个预测结果的评估。通过实例展示了如何对同一样本的Top-K预测结果进行评估,并提供了Python代码实现。

sklearn.metrics中的评估函数只能对同一样本的单个预测结果进行评估,如下所示:

from sklearn.metrics import classification_report

y_true = [0, 5, 0, 3, 4, 2, 1, 1, 5, 4]
y_pred = [0, 2, 4, 5, 2, 3, 1, 1, 4, 2]

print(classification_report(y_true, y_pred))

而我们经常会遇到需要对同一样本的top-k个预测结果进行评估的情况,此时算法针对单个样本的预测结果是一个按可能性排序的列表,如下所示:

y_true = [0, 5, 0, 3, 4, 2, 1, 1, 5, 4]
y_pred = [[0, 0, 2, 1, 5],
     [2, 2, 4, 1, 4],
     [4, 5, 1, 3, 5],
     [5, 4, 2, 4, 3],
     [2, 0, 0, 2, 3],
     [3, 3, 4, 1, 4],
     [1, 1, 0, 1, 2],
     [1, 4, 4, 2, 4],
     [4, 1, 3, 3, 5],
     [2, 4, 2, 2, 3]]

针对以上这种情况,我们要如何评估算法的好坏呢?我们需要precision@k、recall@k和f1_score@k等指标,下面给出计算这些指标的函数及示例。

from _tkinter import _flatten


# 统计所有的类别
def get_unique_labels(y_true, y_pred)
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值