我正在运行GridSearchCV以找到GradientBoostingRegressor的最佳参数。
给出的教程是使用MSE进行评分。
gs_cv = GridSearchCV(est, param_grid, scoring='mean_squared_error', n_jobs=4).fit(X_train, y_train)
是否可以使用其他自己定义的评分,例如Root Mean Squared Logarithmic Error(RMSLE)来获得最佳超参数?
def rmsle(predicted, actual, size):
return np.sqrt(np.nansum(np.square(np.log(predicted + 1) - np.log(actual + 1)))/float(size))
答案 0 :(得分:1)
您需要制作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)