我正在尝试使用 XGBoost 来预测给定查询的一组特征的排名。我设法训练了一个模型,但是当我要求进行预测时,我对输入数据感到困惑。
我试图了解我是否做错了什么,或者这不是正确的方法。
我在做什么:
我解析训练数据(参见此处的示例)并将其输入到 DMatrix 中,以便第一列表示匹配质量,以下列是不同属性的分数,并将 docIds 作为标签发送
我配置组大小
训练似乎效果很好,我没有出错,我使用 rank:pairwise 目标
对于预测,我使用带有假分数的假条目(1 行,2 列,请参见此处),然后我得到一个浮点值。
我试图理解:
1. 我需要为预测输入标签吗?
我的理解是标签类似于“doc ids”所以在预测时我不明白为什么我需要它们
2. 进行预测时需要设置组大小吗?如果是这样,它代表什么?
我的理解是,组用于训练数据以帮助“按查询”进行排名。这与预测有何关联?我是否仍然设置了组大小?
3. 如何将训练中的“组”与预测相关联?
鉴于我只得到一个浮点值,我如何从预测结果中找出这对(分数,组) - 该预测是针对哪个组的?