我使用 XGBoost 的 python 实现。目标之一是rank:pairwise
最小化成对损失(文档)。但是,它没有说明输出的范围。我看到 -10 到 10 之间的数字,但原则上可以是 -inf 到 inf 吗?
问问题
17229 次
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:logistic
etc 也是一样的。唯一的区别是reg:linear
构建树到Min(RMSE(y, y_hat))
,而rank:pairwise
构建树到Max(Map(Rank(y), Rank(y_hat)))
。但是,输出始终为y_hat
。
根据因变量的值,输出可以是任何东西。但我通常期望输出的方差与因变量相比要小得多。这通常是这种情况,因为不需要拟合极端数据值,树只需要生成足够大/小到在组中排名第一/最后的预测变量。
于 2017-07-20T07:59:43.497 回答