コード例 #1
0
ファイル: Experiment.py プロジェクト: fabiorangel/SS_WiSARD
 def get_function_result(self, classifier, index, iter_number):
     partial_result = []
     for i in xrange(iter_number):
         X, y, Xun, testing_X, testing_y = self.random_subsampling(0.2, 0.5, 0.3,classifier)
         if(classifier == 'WiSARD'):
             wisard = SemiSupervisedWiSARD(ss_confidence = index[0],
                                           ignore_zero_addr= index[1],
                                           confidence_threshold = index[2],
                                           bleaching = index[3],
                                           num_bits_addr = index[4],
                                           retina_size = self.__feature_vector_len,
                                           set_of_classes = self.__set_of_classes)
             wisard.fit(X, y, Xun)
             partial_result.append(self.SS_WiSARD_eval(wisard.predict(testing_X), testing_y))
         if(classifier == 'S3VM'):
             svm = qns3vm.QN_S3VM_Sparse(X, y, Xun, random)
             svm.parameters['lam'] = index[0]
             svm.parameters['lamU'] = index[1]
             svm.parameters['sigma'] = index[2]
             svm.parameters['kernel_type'] = index[3]
             svm.train()
             partial_result.append(self.S3VM_eval(svm.getPredictions(testing_X),testing_y))
     return np.mean(partial_result)
コード例 #2
0
ファイル: Experiment.py プロジェクト: fabiorangel/SS_WiSARD
    def validation(self, classifier, tuple_of_params, iter_number):

        if(classifier == 'WiSARD'):
            w1 = []
            partial_result = []
            time_training = []
            time_predicting = []
            for i in xrange(iter_number):
                w1 = SemiSupervisedWiSARD(ss_confidence = tuple_of_params[0],
                                              ignore_zero_addr= tuple_of_params[1],
                                              confidence_threshold = tuple_of_params[2],
                                              bleaching = tuple_of_params[3],
                                              num_bits_addr = tuple_of_params[4],
                                              retina_size = self.__feature_vector_len,
                                              set_of_classes = self.__set_of_classes)

                X, y, Xun, testing_X, testing_y = exp1.random_subsampling(0.1, 0.6, 0.3,'WiSARD')
                time1 = time.time()
                w1.fit(X, y, Xun)
                time2 = time.time()
                partial_result.append(self.SS_WiSARD_eval(w1.predict(testing_X), testing_y))
                time3 = time.time()
                time_training.append(time2 - time1)
                time_predicting.append(time3 - time2)

            return (np.mean(partial_result), np.mean(time_training), np.mean(time_predicting))

        if(classifier == 'S3VM'):
            svm = []
            partial_result = []
            for i in xrange(iter_number):
                X, y, Xun, testing_X, testing_y = exp1.random_subsampling(0.1, 0.6, 0.3,'S3VM')
                time1 = time.time()
                svm = qns3vm.QN_S3VM_Sparse(X, y, Xun, random)
                svm.parameters['lam'] = tuple_of_params[0]
                svm.parameters['lamU'] = tuple_of_params[1]
                svm.parameters['sigma'] = tuple_of_params[2]
                svm.parameters['kernel_type'] = tuple_of_params[3]
                svm.train()
                time2 = time.time()
                partial_result.append(self.S3VM_eval(svm.getPredictions(testing_X),testing_y))
                time3 = time.time()
                time_training.append(time2 - time1)
                time_predicting.append(time3 - time2)

            return (np.mean(partial_result), np.mean(time_training), np.mean(time_predicting))

        if(classifier == 'EMNB'):
            w1 = []
            partial_result = []
            time_training = []
            time_predicting = []
            
            for i in xrange(iter_number):

                X, y, Xun, testing_X, testing_y = exp1.random_subsampling(0.1, 0.6, 0.3,'EMNB')
                time1 = time.time()
                emnb = SemiNB()
                emnb.train_semi(np.transpose(X), y, np.transpose(Xun))
                time2 = time.time() #training time
                summing = 0
                for j in xrange(len(testing_X)):
                    result = emnb.predict(np.transpose(testing_X[j]))
                    if testing_y[j] == result:
                        summing += 1
                partial_result.append(float(summing)/len(testing_X))
                time3 = time.time()
                time_training.append(time2 - time1)
                time_predicting.append(time3 - time2)

            return (np.mean(partial_result), np.mean(time_training), np.mean(time_predicting))