from pySVM import * import sys v1 = SparseVector( (-1,-1)) v2 = SparseVector( (0,1)) v3 = SparseVector( (1,0)) cp = ClassificationProblem() cp.append(ClassificationExample(v1, True)) cp.append(ClassificationExample(v2, False)) cp.append(ClassificationExample(v3, False)) kk = LinearKernel() klass = ClassifierCSVM(cp, kk) info = klass.train(1.0) if abs(.33333+ klass.getThreshold()) > .0001: sys.exit(1) for ex in cp: if (klass(ex.vector) > 0.0) != ex.label: sys.exit(1) from math import sin,cos,pi from random import uniform del cp # circle as example cp = ClassificationProblem() for i in range(100): phi=uniform(0,2*pi) r =uniform(0,2) if abs(r-1.0)<.1: continue x = r * cos(phi) y = r * sin(phi) label = r <=1.0 cp.append(ClassificationExample(SparseVector([x,y]), label)) klass = ClassifierCSVM(cp, PolynomialKernel(1.0,2)) klass.train() for ex in cp: if (klass(ex.vector) > 0.0) != ex.label: sys.exit(1) cp.append(ClassificationExample(SparseVector([0,0]),True)) klass =ClassifierCSVM(cp, RadialKernel()) klass.train() for ex in cp: if (klass(ex.vector) > 0.0) != ex.label: sys.exit(1)