def clf_loop(self, X_train, X_test, y_train, y_test, individuals, setting):
'''
Runs through each model specified by models_to_run once with each possible
setting in params.
'''
N = 0
self.prepare_report()
for index, clf in enumerate([self.clfs[x] for x in self.models_to_run]):
iteration = 0
print('Running {}.'.format(self.models_to_run[index]))
parameter_values = self.params[self.models_to_run[index]]
grid = ParameterGrid(parameter_values)
while iteration < self.iterations_max and iteration < len(grid):
print(' Running Iteration {} of {}...'.format(iteration + 1, self.iterations_max))
if len(grid) > self.iterations_max:
p = random.choice(list(grid))
else:
p = list(grid)[iteration]
try:
m = Model(clf, X_train, y_train, X_test, y_test, p, N,
self.models_to_run[index], iteration,
self.output_dir, thresholds = self.thresholds,
ks = self.ks, report = self.report, label='label',
individuals=individuals, setting=setting)
m.run()
print(' Printing to file...')
if not self.roc:
m.performance_to_file()
else:
m.performance_to_file(roc='{}ROC_{}_{}-{}.png'.format(
self.output_dir, self.models_to_run[index], N,
iteration))
except IndexError as e:
print(p)
print(N)
print('IndexError: {}'.format(e))
print(traceback.format_exc())
continue
except RuntimeError as e:
print(p)
print(N)
print('RuntimeError: {}'.format(e))
print(traceback.format_exc())
continue
except AttributeError as e:
print(p)
print(N)
print('AttributeError: {}'.format(e))
print(traceback.format_exc())
continue
iteration += 1
N += 1
评论列表
文章目录