web-dev-qa-db-ja.com

'rank:pairwise'を使用したXGboostの出力は何ですか?

私はXGBoostのpython実装を使用します。目的の1つはrank:pairwiseそしてそれはペアワイズ損失を最小化します( ドキュメント )。ただし、出力の範囲については何も述べていません。 -10から10までの数字が表示されますが、原則として-infからinfにすることはできますか?

11
Sören

良い質問。 kaggleコンペティション :をご覧ください。

実際、Learning to Rankフィールドでは、特定のクエリに対する各ドキュメントの相対スコアを予測しようとしています。つまり、これは回帰問題や分類問題ではありません。したがって、クエリに添付されたドキュメントが負の予測スコアを取得した場合、それは、他のドキュメントと比較した場合、正のスコアでクエリに比べて比較的少ないことを意味します。

5
Kehe CAI

ランキングの予測スコアを示します。ただし、スコアは自分のグループでのみランク付けするために有効です。したがって、入力データのグループを設定する必要があります。

Esayのランキングについては、私のプロジェクトを参照してください xgboostExtension

4
bigdong

私があなたの質問を正しく理解している場合、あなたは_rank:pairwise_を使用して適合されたモデルでのpredict関数の出力を意味します。

Predictは、予測変数(_y_hat_)を示します。

これは_reg:linear_/_binary:logistic_などでも同じです。唯一の違いは、_reg:linear_がMin(RMSE(y, y_hat))にツリーを構築するのに対し、_rank:pairwise_はMax(Map(Rank(y), Rank(y_hat)))。ただし、出力は常に_y_hat_です。

従属変数の値に応じて、出力は何でもかまいません。しかし、私は通常、出力の分散が従属変数よりもはるかに小さいと予想しています。これは通常、極端なデータ値を適合させる必要がないために当てはまります。ツリーは、グループの最初/最後にランク付けされるのに十分な大きさ/小ささの予測子を生成する必要があります。

3
hjw