def all_tasks(self, skip_aborted=True): all_tasks = [] all_tasks += getattr(self, 'tasks', []) task_groups = getattr(self, 'task_groups', []) all_tasks += [t for task_group in task_groups for t in task_group] if skip_aborted: all_tasks = [t for t in all_tasks if not is_aborted(t)] return all_tasks
def find_bests(self, n_top=5): """Compute the mean score of the completed tasks""" mean_scores = [] for params, task_group in zip(self.all_parameters, self.task_groups): evaluations = [Evaluation(*t.get()) for t in task_group if t.ready() and not is_aborted(t)] if len(evaluations) == 0: continue val_scores = [e.validation_score for e in evaluations] train_scores = [e.train_score for e in evaluations] mean_scores.append((np.mean(val_scores), sem(val_scores), np.mean(train_scores), sem(train_scores), params)) return sorted(mean_scores, reverse=True)[:n_top]
def boxplot_parameters(self, display_train=False): """Plot boxplot for each parameters independently""" import pylab as pl results = [ Evaluation(*task.get()) for task_group in self.task_groups for task in task_group if task.ready() and not is_aborted(task) ] n_rows = len(self.parameter_grid) pl.figure() grid_items = self.parameter_grid.items() for i, (param_name, param_values) in enumerate(grid_items): pl.subplot(n_rows, 1, i + 1) val_scores_per_value = [] train_scores_per_value = [] for param_value in param_values: train_scores = [ r.train_score for r in results if r.parameters[param_name] == param_value ] train_scores_per_value.append(train_scores) val_scores = [ r.validation_score for r in results if r.parameters[param_name] == param_value ] val_scores_per_value.append(val_scores) widths = 0.25 positions = np.arange(len(param_values)) + 1 offset = 0 if display_train: offset = 0.175 pl.boxplot(train_scores_per_value, widths=widths, positions=positions - offset) pl.boxplot(val_scores_per_value, widths=widths, positions=positions + offset) pl.xticks(np.arange(len(param_values)) + 1, param_values) pl.xlabel(param_name) pl.ylabel("Val. Score")
def find_bests(self, n_top=5): """Compute the mean score of the completed tasks""" mean_scores = [] for params, task_group in zip(self.all_parameters, self.task_groups): evaluations = [ Evaluation(*t.get()) for t in task_group if t.ready() and not is_aborted(t) ] if len(evaluations) == 0: continue val_scores = [e.validation_score for e in evaluations] train_scores = [e.train_score for e in evaluations] mean_scores.append( (np.mean(val_scores), sem(val_scores), np.mean(train_scores), sem(train_scores), params)) return sorted(mean_scores, reverse=True)[:n_top]
def boxplot_parameters(self, display_train=False): """Plot boxplot for each parameters independently""" import pylab as pl results = [Evaluation(*task.get()) for task_group in self.task_groups for task in task_group if task.ready() and not is_aborted(task)] n_rows = len(self.parameter_grid) pl.figure() grid_items = self.parameter_grid.items() for i, (param_name, param_values) in enumerate(grid_items): pl.subplot(n_rows, 1, i + 1) val_scores_per_value = [] train_scores_per_value = [] for param_value in param_values: train_scores = [r.train_score for r in results if r.parameters[param_name] == param_value] train_scores_per_value.append(train_scores) val_scores = [r.validation_score for r in results if r.parameters[param_name] == param_value] val_scores_per_value.append(val_scores) widths = 0.25 positions = np.arange(len(param_values)) + 1 offset = 0 if display_train: offset = 0.175 pl.boxplot( train_scores_per_value, widths=widths, positions=positions - offset) pl.boxplot( val_scores_per_value, widths=widths, positions=positions + offset) pl.xticks(np.arange(len(param_values)) + 1, param_values) pl.xlabel(param_name) pl.ylabel("Val. Score")