def kernel_combined_custom_poly_modular(fm_train_real=traindat, fm_test_real=testdat, fm_label_twoclass=label_traindat): from shogun.Features import CombinedFeatures, RealFeatures, Labels from shogun.Kernel import CombinedKernel, PolyKernel, CustomKernel from shogun.Classifier import LibSVM kernel = CombinedKernel() feats_train = CombinedFeatures() tfeats = RealFeatures(fm_train_real) tkernel = PolyKernel(10, 3) tkernel.init(tfeats, tfeats) K = tkernel.get_kernel_matrix() kernel.append_kernel(CustomKernel(K)) subkfeats_train = RealFeatures(fm_train_real) feats_train.append_feature_obj(subkfeats_train) subkernel = PolyKernel(10, 2) kernel.append_kernel(subkernel) kernel.init(feats_train, feats_train) labels = Labels(fm_label_twoclass) svm = LibSVM(1.0, kernel, labels) svm.train() kernel = CombinedKernel() feats_pred = CombinedFeatures() pfeats = RealFeatures(fm_test_real) tkernel = PolyKernel(10, 3) tkernel.init(tfeats, pfeats) K = tkernel.get_kernel_matrix() kernel.append_kernel(CustomKernel(K)) subkfeats_test = RealFeatures(fm_test_real) feats_pred.append_feature_obj(subkfeats_test) subkernel = PolyKernel(10, 2) kernel.append_kernel(subkernel) kernel.init(feats_train, feats_pred) svm.set_kernel(kernel) svm.classify() km_train = kernel.get_kernel_matrix() return km_train, kernel
def kernel_combined_custom_poly_modular(fm_train_real = traindat,fm_test_real = testdat,fm_label_twoclass=label_traindat): from shogun.Features import CombinedFeatures, RealFeatures, BinaryLabels from shogun.Kernel import CombinedKernel, PolyKernel, CustomKernel from shogun.Classifier import LibSVM kernel = CombinedKernel() feats_train = CombinedFeatures() tfeats = RealFeatures(fm_train_real) tkernel = PolyKernel(10,3) tkernel.init(tfeats, tfeats) K = tkernel.get_kernel_matrix() kernel.append_kernel(CustomKernel(K)) subkfeats_train = RealFeatures(fm_train_real) feats_train.append_feature_obj(subkfeats_train) subkernel = PolyKernel(10,2) kernel.append_kernel(subkernel) kernel.init(feats_train, feats_train) labels = BinaryLabels(fm_label_twoclass) svm = LibSVM(1.0, kernel, labels) svm.train() kernel = CombinedKernel() feats_pred = CombinedFeatures() pfeats = RealFeatures(fm_test_real) tkernel = PolyKernel(10,3) tkernel.init(tfeats, pfeats) K = tkernel.get_kernel_matrix() kernel.append_kernel(CustomKernel(K)) subkfeats_test = RealFeatures(fm_test_real) feats_pred.append_feature_obj(subkfeats_test) subkernel = PolyKernel(10, 2) kernel.append_kernel(subkernel) kernel.init(feats_train, feats_pred) svm.set_kernel(kernel) svm.apply() km_train=kernel.get_kernel_matrix() return km_train,kernel
def loadSVM(pickled_svm_filename, C, labels): """Loads a Shogun SVM object which was pickled by saveSVM""" from cPickle import Unpickler, PickleError from shogun.Kernel import CombinedKernel pickle_file = open(pickled_svm_filename, 'rb') unpck = Unpickler(pickle_file) (version, num_sv, name, bias, alphas, svs) = unpck.load() if (version == __version__): svm = LibSVM(num_sv) # same as .create_new_model(num_sv) svm.set_bias(bias) svm.set_alphas(alphas) svm.set_support_vectors(svs) kernel = CombinedKernel() #not sure if this is even required kernel.set_name(name) # maybe not required svm.set_kernel(kernel) else: print "File was pickled by another version of EasySVM.py or is not a kernel:" print "Received from ", pickled_svm_filename, ": ", version, " expected: ", __version__ raise PickleError return svm
C = 0.017 epsilon = 1e-5 tube_epsilon = 1e-2 svm = LibSVM() svm.set_C(C, C) svm.set_epsilon(epsilon) svm.set_tube_epsilon(tube_epsilon) for i in xrange(3): data_train = random.rand(num_feats, num_vec) data_test = random.rand(num_feats, num_vec) feats_train = RealFeatures(data_train) feats_test = RealFeatures(data_test) labels = Labels(random.rand(num_vec).round() * 2 - 1) svm.set_kernel(LinearKernel(size_cache, scale)) svm.set_labels(labels) kernel = svm.get_kernel() print "kernel cache size: %s" % (kernel.get_cache_size()) kernel.init(feats_test, feats_test) svm.train() kernel.init(feats_train, feats_test) print svm.apply().get_labels() #kernel.remove_lhs_and_rhs() #import pdb #pdb.set_trace()
C=0.017 epsilon=1e-5 tube_epsilon=1e-2 svm=LibSVM() svm.set_C(C, C) svm.set_epsilon(epsilon) svm.set_tube_epsilon(tube_epsilon) for i in xrange(3): data_train=random.rand(num_feats, num_vec) data_test=random.rand(num_feats, num_vec) feats_train=RealFeatures(data_train) feats_test=RealFeatures(data_test) labels=Labels(random.rand(num_vec).round()*2-1) svm.set_kernel(LinearKernel(size_cache, scale)) svm.set_labels(labels) kernel=svm.get_kernel() print "kernel cache size: %s" % (kernel.get_cache_size()) kernel.init(feats_test, feats_test) svm.train() kernel.init(feats_train, feats_test) print svm.classify().get_labels() #kernel.remove_lhs_and_rhs() #import pdb #pdb.set_trace()