def main(dataset, output, epsilon, capacity, width, kernel_type): LOGGER.info("SVM Multiclass classifier") LOGGER.info("Epsilon: %s" % epsilon) LOGGER.info("Capacity: %s" % capacity) LOGGER.info("Gaussian width: %s" % width) # Get features feats, labels = get_features_and_labels(LibSVMFile(dataset)) # Create kernel try: kernel = KERNELS[kernel_type](feats, width) except KeyError: LOGGER.error("Kernel %s not available. try Gaussian or Linear" % kernel_type) # Initialize and train Multiclass SVM svm = MulticlassLibSVM(capacity, kernel, labels) svm.set_epsilon(epsilon) with track_execution(): svm.train() # Serialize to file writable_file = SerializableHdf5File(output, 'w') with closing(writable_file): svm.save_serializable(writable_file) LOGGER.info("Serialized classifier saved in: '%s'" % output)
def classifier_multiclasslibsvm_modular (fm_train_real=traindat,fm_test_real=testdat,label_train_multiclass=label_traindat,width=2.1,C=1,epsilon=1e-5): from modshogun import RealFeatures, MulticlassLabels from modshogun import GaussianKernel from modshogun import MulticlassLibSVM feats_train=RealFeatures(fm_train_real) feats_test=RealFeatures(fm_test_real) kernel=GaussianKernel(feats_train, feats_train, width) labels=MulticlassLabels(label_train_multiclass) svm=MulticlassLibSVM(C, kernel, labels) svm.set_epsilon(epsilon) svm.train() kernel.init(feats_train, feats_test) out = svm.apply().get_labels() predictions = svm.apply() return predictions, svm, predictions.get_labels()
def classifier_multiclasslibsvm_modular(fm_train_real=traindat, fm_test_real=testdat, label_train_multiclass=label_traindat, width=2.1, C=1, epsilon=1e-5): from modshogun import RealFeatures, MulticlassLabels from modshogun import GaussianKernel from modshogun import MulticlassLibSVM feats_train = RealFeatures(fm_train_real) feats_test = RealFeatures(fm_test_real) kernel = GaussianKernel(feats_train, feats_train, width) labels = MulticlassLabels(label_train_multiclass) svm = MulticlassLibSVM(C, kernel, labels) svm.set_epsilon(epsilon) svm.train() kernel.init(feats_train, feats_test) out = svm.apply().get_labels() predictions = svm.apply() return predictions, svm, predictions.get_labels()