from Orange import data from Orange import evaluation from Orange.classification.svm import SVMLearner, kernels from Orange.distance import Euclidean from Orange.distance import Hamming iris = data.Table("iris.tab") l1 = SVMLearner() l1.kernel_func = kernels.RBFKernelWrapper(Euclidean(iris), gamma=0.5) l1.kernel_type = SVMLearner.Custom l1.probability = True c1 = l1(iris) l1.name = "SVM - RBF(Euclidean)" l2 = SVMLearner() l2.kernel_func = kernels.RBFKernelWrapper(Hamming(iris), gamma=0.5) l2.kernel_type = SVMLearner.Custom l2.probability = True c2 = l2(iris) l2.name = "SVM - RBF(Hamming)" l3 = SVMLearner() l3.kernel_func = kernels.CompositeKernelWrapper( kernels.RBFKernelWrapper(Euclidean(iris), gamma=0.5), kernels.RBFKernelWrapper(Hamming(iris), gamma=0.5), l=0.5) l3.kernel_type = SVMLearner.Custom l3.probability = True c3 = l1(iris) l3.name = "SVM - Composite"
# Check the accuracy print "\n" + "*" * 50 print "DEFAULT SVM" print "Training Accuracy: " + str(compute_learner_accuracy(svm, trn_data)) print "Testing Accuracy: " + str(compute_learner_accuracy(svm, tst_data)) # Cross Validation from Orange.classification.svm import SVMLearner, kernels from Orange.distance import Euclidean from Orange.distance import Hamming svm1 = SVMLearner() svm2 = SVMLearner() svm2.kernel_func = kernels.RBFKernelWrapper(Hamming(trn_data), gamma=0.5) svm2.kernel_type = SVMLearner.Custom svm2.probability = True svm3 = SVMLearner(kernel_type=SVMLearner.Custom, kernel_func=kernels.CompositeKernelWrapper( kernels.RBFKernelWrapper(Euclidean(trn_data), gamma=0.5), kernels.RBFKernelWrapper(Hamming(trn_data), gamma=0.5), l=0.5), probability=False) res = Orange.evaluation.testing.cross_validation([svm1, svm2, svm3], trn_data, folds=5) print "\n" + "-" * 30 print "CROSS VALIDATION" print "SVM 1 Accuracy: %.2f" % Orange.evaluation.scoring.CA(res)[0] print "SVM 2 Accuracy: %.2f" % Orange.evaluation.scoring.CA(res)[1] print "SVM 3 Accuracy: %.2f" % Orange.evaluation.scoring.CA(res)[2]