我正在尝试使用XGBoost来预测给定查询的一组功能的排名。我设法训练了模型,但是当我要求预测时,我对输入数据感到困惑。
我试图了解我做错了什么,或者这不是正确的方法。
我在做什么:
我解析训练数据(see here a sample)并将其输入到DMatrix中,以便第一列代表匹配质量,随后的列代表不同属性的得分,并且将docId发送为标签
我配置组大小
训练似乎效果很好,没有错误,我使用了rank:成对的目标
为了进行预测,我使用带有假分数(1行,2列see here)的假条目,并返回单个浮点值。
我想了解:
1。我需要为预测输入标签吗?
我的理解是标签类似于“文档ID”,因此在预测时我看不到为什么需要它们
2。进行预测时是否需要设置组的大小?如果是这样,它代表什么?
我的理解是,组用于训练数据,以帮助对“每个查询”进行排名。这与预测有何关系?我是否仍要设置组的大小?
3。如何将训练中的“组”与预测相关联?
考虑到我只返回一个浮点值,我该如何从预测结果中找出对(分数,组)-该预测用于哪个组?