Ejemplo n.º 1
0
class UpdateModel(CoreUpdateModel):
    def __init__(self, iteration):
        CoreUpdateModel.__init__(self, iteration)
        self.exp = self.iteration.exp
        self.model_exp = None

    def execute(self):
        name = 'AL%d-Iter%d-main' % (self.exp.exp_id, self.iteration.iter_num)
        exp_conf = DiademConf(self.exp.exp_conf.secuml_conf,
                              self.exp.exp_conf.dataset_conf,
                              self.exp.exp_conf.features_conf,
                              self.exp.exp_conf.annotations_conf,
                              self.model_conf,
                              name=name,
                              parent=self.exp.exp_id)
        self.model_exp = DiademExp(exp_conf, session=self.exp.session)
        self.model_exp.run(instances=self.iteration.datasets.instances,
                           cv_monitoring=True)
        self._set_exec_time()
        self.classifier = self.model_exp.get_train_test_exp('train').classifier

    def _set_exec_time(self):
        train_monitor = self.model_exp.get_train_test_exp('train').monitoring
        test_monitor = self.model_exp.get_train_test_exp('test').monitoring
        self.exec_time = sum(
            [m.exec_time for m in [train_monitor, test_monitor]])

    def monitoring(self, al_dir, iteration_dir):
        with_validation = self.iteration.conf.validation_conf is not None
        self.monitoring = ModelPerfEvolution(self.iteration.iter_num,
                                             self.model_exp, with_validation)
        self.monitoring.generate()
        self.monitoring.export(iteration_dir, al_dir)
Ejemplo n.º 2
0
 def _run_logistic_regression(self):
     name = '-'.join([
         'AL%d' % (self.exp.exp_id),
         'Iter%d' % (self.iteration.iter_num), 'all', 'LogisticRegression'
     ])
     exp_conf = DiademConf(self.exp.exp_conf.secuml_conf,
                           self.exp.exp_conf.dataset_conf,
                           self.exp.exp_conf.features_conf,
                           self.exp.exp_conf.annotations_conf,
                           self.exp.exp_conf.core_conf.multiclass_model,
                           name=name,
                           parent=self.exp.exp_id)
     model_exp = DiademExp(exp_conf, session=self.exp.session)
     model_exp.run(instances=self.iteration.datasets.instances,
                   cv_monitoring=False)
     train_exp = model_exp.get_train_test_exp('train')
     test_exp = model_exp.get_train_test_exp('test')
     self.lr_predicted_proba = test_exp.predictions.all_probas
     self.lr_predicted_labels = test_exp.predictions.values
     self.lr_class_labels = train_exp.classifier.class_labels
     self.lr_time = train_exp.monitoring.exec_time
     self.lr_time += test_exp.monitoring.exec_time