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_