예제 #1
0
    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
예제 #2
0
    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
예제 #3
0
    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]
예제 #4
0
    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")
예제 #5
0
    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]
예제 #6
0
    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")