Python 基于LGBMRanker的超参数优化

Python 基于LGBMRanker的超参数优化,python,lightgbm,gridsearchcv,Python,Lightgbm,Gridsearchcv,我正在使用LGBMRanker解决排名问题,并希望使用GridSearchCV优化超参数 我有三段数据(X,y): 我还有每个拆分的查询组大小(三个列表):gp_1、gp_2、gp_3 我正在定义交叉验证的特定拆分: from sklearn.model_selection import PredefinedSplit valid_fold = list(np.zeros(n))+ list(np.ones(n))+list(2*np.ones(n)) ps = PredefinedSplit(

我正在使用LGBMRanker解决排名问题,并希望使用GridSearchCV优化超参数

我有三段数据(X,y):

我还有每个拆分的查询组大小(三个列表):gp_1、gp_2、gp_3

我正在定义交叉验证的特定拆分:

from sklearn.model_selection import PredefinedSplit
valid_fold = list(np.zeros(n))+ list(np.ones(n))+list(2*np.ones(n))
ps = PredefinedSplit(valid_fold)
如何将数据馈送到grid.fit?以下代码不起作用:

X_concat = np.concatenate((X_1, X_2, X_3), axis=0)
y_concat = np.concatenate((y_1, y_2, y_3), axis=0)

grid.fit(X_concat, y_concat, group= next(iter([gp_1, gp_2, gp_3])), **params_fit)

您看到的错误是什么,或者如何知道grid.fit不工作?
ranker = lightgbm.LGBMRanker(**estimator_params)

grid = GridSearchCV(ranker, params_grid, cv=ps, verbose=2, scoring=make_scorer(ndcg_score, greater_is_better=True), refit=False)
X_concat = np.concatenate((X_1, X_2, X_3), axis=0)
y_concat = np.concatenate((y_1, y_2, y_3), axis=0)

grid.fit(X_concat, y_concat, group= next(iter([gp_1, gp_2, gp_3])), **params_fit)