使用 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)
我正在运行 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)