sklearn GridSearchCV with Pipeline
An alternate way to create GridSearchCV
is to use make_scorer
and turn greater_is_better
flag to False
So, if clf is your classifier, and parameters are your hyperparameter lists, you can use the make_scorer
like this:
from sklearn.metrics import make_scorer
#define your own mse and set greater_is_better=False
mse = make_scorer(mean_squared_error,greater_is_better=False)
Now, same as below, you can call the GridSearch and pass your defined mse
grid_obj = GridSearchCV(clf, parameters, cv=5,scoring=mse,n_jobs = -1, verbose=True)
Those scores are negative MSE scores, i.e. negate them and you get the MSE. The thing is that GridSearchCV
, by convention, always tries to maximize its score so loss functions like MSE have to be negated.