13

我使用 XGBoost 的 python 实现。目标之一是rank:pairwise最小化成对损失(文档)。但是,它没有说明输出的范围。我看到 -10 到 10 之间的数字,但原则上可以是 -inf 到 inf 吗?

4

3 回答 3

8

好问题。你可以看看kaggle 比赛

实际上,在 Learning to Rank 领域,我们试图预测每个文档对特定查询的相对分数。也就是说,这不是回归问题或分类问题。因此,如果附加到查询的文档获得负预测分数,这意味着并且仅意味着与其他文档相比,它相对于查询相对较少,具有正分数。

于 2016-12-02T08:26:43.560 回答
7

它给出了排名的预测分数。但是,分数仅在自己的组中排名有效。所以我们必须为输入数据设置组。

作文排名参考我的项目xgboostExtension

于 2017-12-01T05:15:07.977 回答
5

如果我正确理解您的问题,您的意思是predict使用rank:pairwise.

Predict给出预测变量 ( y_hat)。

这对于reg:linear/ binary:logisticetc 也是一样的。唯一的区别是reg:linear构建树到Min(RMSE(y, y_hat)),而rank:pairwise构建树到Max(Map(Rank(y), Rank(y_hat)))。但是,输出始终为y_hat

根据因变量的值,输出可以是任何东西。但我通常期望输出的方差与因变量相比要小得多。这通常是这种情况,因为不需要拟合极端数据值,树只需要生成足够大/小到在组中排名第一/最后的预测变量。

于 2017-07-20T07:59:43.497 回答