package func.test; import shared.DataSet; import shared.Instance; import func.svm.LinearKernel; import func.svm.PolynomialKernel; import func.svm.RBFKernel; import func.svm.SequentialMinimalOptimization; import func.svm.SigmoidKernel; import func.svm.SupportVectorMachine; /** * A test class * @author Andrew Guillory gtg008g@mail.gatech.edu * @version 1.0 */ public class SequentialMinimalOptimizationTest { /** * Test main * @param args ignored */ public static void main(String[] args) { Instance[] instances = { new Instance(new double[] {0, 0, 0, 1}, true), new Instance(new double[] {0, 1, 0, 1}, true), new Instance(new double[] {1, 0, 0, 1}, true), new Instance(new double[] {1, 0, 0, 1}, false), new Instance(new double[] {1, 0, 1, 1}, false), new Instance(new double[] {1, 0, 0, 1}, false), }; double[][] tests = { {0, 1, 1, 1}, {0, 0, 0, 0}, {1, 0, 0, 1}, {1, 1, 1, 1} }; PolynomialKernel pk = new PolynomialKernel(2, true); LinearKernel lk = new LinearKernel(); SigmoidKernel sk = new SigmoidKernel(); RBFKernel rk = new RBFKernel(.05); SequentialMinimalOptimization smo = new SequentialMinimalOptimization(new DataSet(instances), sk, 55); smo.train(); SupportVectorMachine svm = smo.getSupportVectorMachine(); System.out.println(svm.getSupportVectors().size()); System.out.println("examples"); for (int i = 0; i < instances.length; i++) { System.out.println(svm.margin(instances[i])); } System.out.println("tests"); for (int i = 0; i < tests.length; i++) { System.out.println(svm.margin(new Instance(tests[i]))); } } }