diff --git a/demo/rank/toy.eval b/demo/rank/toy.eval deleted file mode 100644 index 8dad91eb1..000000000 --- a/demo/rank/toy.eval +++ /dev/null @@ -1,5 +0,0 @@ -1 0:2 1:3 2:2 -0 0:2 1:3 2:2 -0 0:2 1:3 2:2 -0 0:2 1:3 2:2 -1 0:2 1:3 2:2 diff --git a/demo/rank/toy.eval.group b/demo/rank/toy.eval.group deleted file mode 100644 index 4792e70f3..000000000 --- a/demo/rank/toy.eval.group +++ /dev/null @@ -1,2 +0,0 @@ -2 -3 diff --git a/demo/rank/toy.test b/demo/rank/toy.test deleted file mode 100644 index 8dad91eb1..000000000 --- a/demo/rank/toy.test +++ /dev/null @@ -1,5 +0,0 @@ -1 0:2 1:3 2:2 -0 0:2 1:3 2:2 -0 0:2 1:3 2:2 -0 0:2 1:3 2:2 -1 0:2 1:3 2:2 diff --git a/demo/rank/toy.test.group b/demo/rank/toy.test.group deleted file mode 100644 index 4792e70f3..000000000 --- a/demo/rank/toy.test.group +++ /dev/null @@ -1,2 +0,0 @@ -2 -3 diff --git a/demo/rank/toy.train b/demo/rank/toy.train deleted file mode 100644 index cd8b6d628..000000000 --- a/demo/rank/toy.train +++ /dev/null @@ -1,11 +0,0 @@ -1 0:1.2 1:3 2:5.6 -0 0:2.0 1:2.3 2:5.1 -0 0:3.9 1:3 2:3.1 -0 0:2 1:3.2 2:3.4 -1 0:2.1 1:4.5 2:4.2 -0 0:1.9 1:2.8 2:3.1 -1 0:3.0 1:2.0 2:1.1 -0 0:1.9 1:1.8 2:2.1 -0 0:1.1 1:2.2 2:1.4 -1 0:2.1 1:4.1 2:4.0 -0 0:1.9 1:2.2 2:1.1 diff --git a/demo/rank/toy.train.group b/demo/rank/toy.train.group deleted file mode 100644 index ec385ae9f..000000000 --- a/demo/rank/toy.train.group +++ /dev/null @@ -1,2 +0,0 @@ -6 -5 \ No newline at end of file diff --git a/regrank/xgboost_regrank_obj.hpp b/regrank/xgboost_regrank_obj.hpp index ed4a33dd9..abe79c330 100644 --- a/regrank/xgboost_regrank_obj.hpp +++ b/regrank/xgboost_regrank_obj.hpp @@ -280,11 +280,13 @@ namespace xgboost{ virtual ~LambdaRankObj(){} virtual void SetParam(const char *name, const char *val){ - if (!strcmp("loss_type", name)) loss_.loss_type = atoi(val); - } + if( !strcmp( "loss_type", name ) ) loss_.loss_type = atoi( val ); + if( !strcmp( "fix_list_weight", name ) ) fix_list_weight_ = (float)atof( val ); + + } private: LossType loss_; - + float fix_list_weight_; protected: class Triple{ @@ -372,6 +374,15 @@ namespace xgboost{ grad[pairs[i].first] += first_order_gradient; hess[pairs[i].second] += second_order_gradient; grad[pairs[i].second] -= first_order_gradient; + + } + + if( fix_list_weight_ != 0.0f ){ + float scale = fix_list_weight_ / (group_index[group+1] - group_index[group]); + for(unsigned j = group_index[group]; j < group_index[group+1]; ++j ){ + grad[j] *= scale; + hess[j] *= scale; + } } }