尝试使用xgboost进行成对排名

时间:2016-09-14 14:45:48

标签: python xgboost

使用xgboost的documentation中的python API我通过以下方式创建列车​​数据:

dtrain = xgb.DMatrix(file_path)

此处file_path属于libsvm格式的txt文件。当我进行成对排名时,我也输入了刚刚输入的dtrain数据中组的长度:

dtrain.set_group(group_len_file)

现在我正在训练模型:

param = {'bst:max_depth':2, 'bst:eta':1, 'silent':1, 'objective':'rank:pairwise' }
param['nthread'] = 4
param['eval_metric'] = 'ndcg'

bst = xgb.train(param,dtrain,10)

现在我想使用gridsearch。所以我的问题是当我输入gridsearch时如何使用sklearn中的DMatrix

Gennerally:

from sklearn.grid_search import GridSearchCV 
param_test1 = {
            'max_depth':list(range(3,10,2)),
            'min_child_weiht':list(range(1,6,2))
            }
gsearch = GridSearchCV(estimator=XGBClassifier(objective='rank:pairwise'),
                       param_grid = param_test1)

gsearch没有train。它只有fitXy作为输入,而不是DMatrix。有办法吗?

如果不是,我可以将DMatrix格式转换为Dmatrix => Xy但在文档中我无法找到如何输入set_group的情况?有什么想法吗?

0 个答案:

没有答案