How to pass elegantly Sklearn's GridseachCV's best parameters to another model?

Viewed 16523

I have found a set of best hyperparameters for my KNN estimator with Grid Search CV:

>>> knn_gridsearch_model.best_params_
{'algorithm': 'auto', 'metric': 'manhattan', 'n_neighbors': 3}

So far, so good. I want to train my final estimator with these new-found parameters. Is there a way to feed the above hyperparameter dict to it directly? I tried this:

>>> new_knn_model = KNeighborsClassifier(knn_gridsearch_model.best_params_)

but instead the hoped result new_knn_model just got the whole dict as the first parameter of the model and left the remaining ones as default:

>>> knn_model
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1,
           n_neighbors={'n_neighbors': 3, 'metric': 'manhattan', 'algorithm': 'auto'},
           p=2, weights='uniform')

Disappointing indeed.

2 Answers
Related