Пример #1
0
 def get_naive_bayes_conf(self):
     name = '-'.join([
         'AL%d' % self.exp.exp_id,
         'Iter%d' % self.iteration.iter_num, 'all', 'NaiveBayes'
     ])
     classifier_conf = self.exp.exp_conf.core_conf.classifier_conf
     optim_conf = classifier_conf.hyperparam_conf.optim_conf
     multiclass = True
     hyperparam_conf = HyperparamConf.get_default(
         optim_conf.num_folds, optim_conf.n_jobs, multiclass,
         GaussianNaiveBayesConf._get_hyper_desc(), self.exp.logger)
     naive_bayes_conf = GaussianNaiveBayesConf(multiclass, hyperparam_conf,
                                               self.exp.logger)
     test_conf = UnlabeledLabeledConf(self.exp.logger, None)
     classification_conf = ClassificationConf(naive_bayes_conf, test_conf,
                                              self.exp.logger)
     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,
                           classification_conf,
                           name=name,
                           parent=self.exp.exp_id)
     naive_bayes_exp = DiademExp(exp_conf, session=self.exp.session)
     naive_bayes_exp.create_exp()
     return naive_bayes_conf
Пример #2
0
class RcdQueries(CoreRcdQueries):
    def __init__(self,
                 iteration,
                 label,
                 proba_min=None,
                 proba_max=None,
                 input_checking=True):
        CoreRcdQueries.__init__(self,
                                iteration,
                                label,
                                proba_min,
                                proba_max,
                                input_checking=input_checking)
        self.multiclass_exp = None
        self.exp = iteration.exp

    def generate_query(self,
                       instance_id,
                       predicted_proba,
                       suggested_label,
                       suggested_family,
                       confidence=None):
        return Query(instance_id,
                     predicted_proba,
                     suggested_label,
                     suggested_family,
                     confidence=confidence)

    def _get_multiclass_conf(self):
        conf = self.rcd_conf.classification_conf
        name = '-'.join([
            'AL%d' % self.exp.exp_id,
            'Iter%d' % self.iteration.iter_num, self.label, 'analysis'
        ])
        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,
                              conf,
                              None,
                              name=name,
                              parent=self.exp.exp_id)
        self.multiclass_exp = DiademExp(exp_conf, session=self.exp.session)
        self.multiclass_exp.create_exp()
        return conf

    def _create_clustering_exp(self):
        core_conf = CoreClusteringConf(self.exp.exp_conf.logger,
                                       self.categories.num_categories)
        name = '-'.join([
            'AL%d' % self.exp.exp_id,
            'Iter%d' % self.iteration.iter_num, self.label, 'clustering'
        ])
        exp_conf = ClusteringConf(self.exp.exp_conf.secuml_conf,
                                  self.exp.exp_conf.dataset_conf,
                                  self.exp.exp_conf.features_conf,
                                  self.exp.exp_conf.annotations_conf,
                                  core_conf,
                                  name=name,
                                  parent=self.exp.exp_id)
        clustering_exp = ClusteringExperiment(exp_conf,
                                              session=self.exp.session)
        clustering_exp.create_exp()
        return clustering_exp

    def _gen_clustering_visu(self):
        if self.families_analysis:
            self.clustering_exp = self._create_clustering_exp()
            clustering = Clusters(self.categories.instances,
                                  self.categories.assigned_categories)
            clustering.generate(None, None)
            clustering.export(self.clustering_exp.output_dir())
        else:
            self.clustering_exp = None

    def _set_categories(self, all_instances, assigned_categories,
                        predicted_proba):
        self.categories = Categories(self.multiclass_exp, self.iteration,
                                     all_instances, assigned_categories,
                                     predicted_proba, self.label,
                                     self.multiclass_model.class_labels)