我曾经使用GridSearchCV(...评分=“准确度”...)来分类模型 . 现在我将使用GridSearchCV作为回归模型,并使用自己的错误函数设置评分 .
示例代码:
def rmse(predict, actual):
predict = np.array(predict)
actual = np.array(actual)
distance = predict - actual
square_distance = distance ** 2
mean_square_distance = square_distance.mean()
score = np.sqrt(mean_square_distance)
return score
rmse_score = make_scorer(rmse)
gsSVR = GridSearchCV(...scoring=rmse_score...)
gsSVR.fit(X_train,Y_train)
SVR_best = gsSVR.best_estimator_
print(gsSVR.best_score_)
但是,当错误分数最高时,我发现这种方式返回参数集 . 结果,我得到了最差的参数集和分数 . 在这种情况下,我如何获得最佳估算和分数?
摘要:
分类 - > GridSearchCV(得分=“准确度”) - > best_estimaror ...最好
回归 - > GridSearchCV(scroing = rmse_score) - > best_estimator ......最差
1 回答
这在技术上是一种损失,其中越低越好 . 您可以在make_scorer中打开该选项:
您还需要将输入的顺序从
rmse(predict, actual)
更改为rmse(actual, predict)
,因为GridSearchCV将传递它们的顺序 . 所以最后的得分手看起来像这样: