除了推荐任务,在二分类任务中,也可以计算该指标,代码如下:
# ndcg def get_dcg(y_pred, y_true, k):
#注意y_pred与y_true必须是一一对应的,并且y_pred越大越接近label=1(用相关性的说法就是,与label=1越相关) df = pd.
DataFrame({"y_pred":y_pred, "y_true":y_true}) df = df.sort_values(by="y_pred",
ascending=False) # 对y_pred进行降序排列,越排在前面的,越接近label=1 df = df.iloc[0:k, :] # 取前K个
dcg= (2 ** df["y_true"] - 1) / np.log2(np.arange(1, df["y_true"].count()+1) + 1)
# 位置从1开始计数 dcg = np.sum(dcg) def get_ndcg(df, k): # df包含y_pred和y_true dcg =
get_dcg(df["y_pred"], df["y_true"], k) idcg = get_dcg(df["y_true"], df["y_true"]
, k) ndcg = dcg / idcg return ndcg

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信