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