You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

sklearn dcg_score不符合预期运行报错,求排查解决方法

解决sklearn dcg_score单条目输入报错问题

问题重现

代码:

from sklearn.metrics import dcg_score
import numpy as np

true_relevance = np.asarray([[10]])
scores = np.asarray([[.1]])
dcg_score(true_relevance, scores)

运行时报错:

ValueError: Only ('multilabel-indicator', 'continuous-multioutput', 'multiclass-multioutput') formats are supported. Got binary instead

问题原因

sklearn的dcg_score默认会根据输入数组的形状推断任务类型:当每个样本仅包含1个相关性得分时,函数会误将其判定为二分类任务(binary格式),而非排序任务的相关性评估场景,因此触发格式不支持的错误。

解决方法

给dcg_score指定k=1参数,明确告知函数计算top-1条目的DCG,即可正确处理单条目输入:

from sklearn.metrics import dcg_score
import numpy as np

true_relevance = np.asarray([[10]])
scores = np.asarray([[.1]])
result = dcg_score(true_relevance, scores, k=1)
print(result)  # 输出:10.0

此时计算结果符合维基百科的DCG公式:DCG@1 = 10 / log2(1+1) = 10,与预期一致。

内容的提问来源于stack exchange,提问作者learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 01:50:31