#!/usr/bin/env python # coding: utf-8 # In[1]: import numpy as np import pandas as pd import matplotlib import matplotlib.pyplot as plt import seaborn as sns get_ipython().run_line_magic('matplotlib', 'inline') # In[2]: from sklearn.model_selection import GridSearchCV from sklearn.metrics import accuracy_score from sklearn.metrics import f1_score class ModelSelectionHelper: def __init__(self, models, params): print('init model selection helper notebook') self.models = models self.params = params self.keys = models.keys() self.grid_searches = {} def fit(self, X, y, scoring=None, n_jobs=3, refit=True, cv=5, verbose=1, return_train_score=True): for key in self.keys: print('---------------------------------------------------------------------------') print(key) model = self.models[key] params = self.params[key] grid_search = GridSearchCV(model, params, cv=cv, n_jobs=n_jobs, verbose=verbose, scoring=scoring, refit=refit, return_train_score=return_train_score) grid_search.fit(X, y) self.grid_searches[key] = grid_search #best_params_ and best_score_ are only available if refit=True if (refit==True): print('best_params_: ', grid_search.best_params_) print('best_score_: ', grid_search.best_score_) def get_model_best_estimator(self, key): return self.grid_searches[key].best_estimator_ # In[ ]: # In[ ]: