Yan*_*Leo 5 python machine-learning ranking scikit-learn xgboost
我无法理解sklearn nDcg的输入格式:http ://sklearn.apachecn.org/en/0.19.0/modules/generated/sklearn.metrics.ndcg_score.html
当前,我遇到以下问题:我有多个查询,每个查询都已成功计算出排名概率。但是现在的问题是为我想使用sklearn nDcg的测试集计算nDCG。链接上给出的例子
>>> y_true = [1, 0, 2]
>>> y_score = [[0.15, 0.55, 0.2], [0.7, 0.2, 0.1], [0.06, 0.04, 0.9]]
>>> ndcg_score(y_true, y_score, k=2)
1.0
Run Code Online (Sandbox Code Playgroud)
根据站点的说法,y_true是基本事实,y_score是概率,所以我的问题如下:
您可以将其视为类似于多类分类问题。
所以回答你的问题
- 此示例仅用于一个查询还是多个查询?
一问
- 如果这只是一个查询,那么 y_true 代表什么:原始排名?
我将其称为文档的相关性标签,因为它可能具有重复值。
- 如果这是针对单个查询,为什么我们有多个输入概率?
y_score是属于某个类的文档的概率分布。在您的示例中y_score = [[0.15, 0.55, 0.2], [0.7, 0.2, 0.1], [0.06, 0.04, 0.9]],第 0 个文档属于第 1 类(最大值为 0.55),第一个文档属于第 0 类(最大值为 0.7),第 2 个文档属于第 2 类(最大值为 0.9)。缺乏文档,并且示例也具有误导性。如果有四个文件就更好了。
- 如何将此方法应用于多个查询及其结果概率?
然后,您可以跨多个查询平均每个查询的 nDCG 分数。
| 归档时间: |
|
| 查看次数: |
1824 次 |
| 最近记录: |