使用 GridSearchCV 进行 GBRT 超参数调整

GBRT Hyperparameter Tuning using GridSearchCV

我正在运行 GridSearchCV 来寻找 GradientBoostingRegressor 的最佳参数。

给的教程是用MSE打分。

gs_cv = GridSearchCV(est, param_grid, scoring='mean_squared_error', n_jobs=4).fit(X_train, y_train)

是否可以使用其他自己定义的评分,例如均方根对数误差 (RMSLE) 来获得最佳超参数?

def rmsle(predicted, actual, size):
    return np.sqrt(np.nansum(np.square(np.log(predicted + 1) - np.log(actual + 1)))/float(size))

你需要做一个custom scorer。在您的情况下,它看起来像这样:

from sklearn.metrics import make_scorer

scorer = make_scorer(rmsle, greater_is_better=False, size=10)
grid = GridSearchCV(est, param_grid, scoring=scorer)