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)
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