def optimize(self, hyper_param_iterations, old_trials=None):
hp_info = self.model_runner.hyper_parameter_info()
if old_trials is None:
trials = Trials()
else:
trials = old_trials
if hp_info.get('fixed') is True:
del hp_info['fixed']
result = self.model_runner.train_and_cv_error(self.features, hp_info)
trials.trials.append({
'result': result,
'misc': {'tid': 0, 'vals': hp_info},
})
return trials, hp_info
best_hps = fmin(self.to_minimize,
hp_info,
algo=tpe.suggest,
max_evals=hyper_param_iterations,
trials=trials)
filtered_hps = {}
for hp in self.model_runner.hyper_parameter_info():
try:
filtered_hps[hp] = best_hps[hp]
except KeyError:
filtered_hps[hp] = None
return trials, filtered_hps
评论列表
文章目录